《javascript高级程序设计》读书笔记(2)

《javascript高级程序设计》读书笔记

表单基础知识

document.forms可以取得页面中所有表单

<form>的一些基本属性:

accpet-charset:服务器能处理字符集
action: 接收url
enctype:请求的编码类型
method:提交方法

提交表单的方式

<input type="submit" vlaue="Submit Form"> --通用提交按钮
<button type="submit">Submit Form</button> --自定义提交按键
<input type="image" src="graphic.gif"/> --图像按钮

只要表单中存在上面列出的任何一种按钮,那么在相应的表单控件拥有焦点的情况下,按回车键就可以提交表单。浏览器会在将请求发送给服务器之前触发submit()时间,我们可以在这时校验输入数据,并根据结果决定是否阻止事件提交

在JavaScript中,以编程方式调用submit()方法也可以提交表单。而且,这种方式无需表单包含提交按钮,任何时候都可以正常提交表单。

var from=document.getElementById("myForm");
//提交表单
form.submit();

在以调用submit()方法的形式提交表单时,不会觖submit事件,因此要记得在调用此方法之前先验证表单数据

共有的表单字段事件

* blur:失去焦点触发
* change:<input>和<textarea>失去焦点且value值改变时触发,<select>在其改变时触发
* focus

过滤输入的思路

向文本框插入字符的操作keypress事件,可以阻止这个事件的默认行为来屏蔽字符

HTML5约束限制API

1.<input type="text" required>
2.<input type="email"> 和 <input type="url"> 
3.数值范围 <input type="number" min="0" max="100" step="5">值必须1-100且是5的倍数 
4. <input type="text" pattern="\d+"> 匹配正则 
5. 告诉表单不验证 <form method="post" novalidate action="xxx">

第十七章 调试技巧

几种避免浏览器响应JavaScript错误的方法:

在可能发生错误的地方使用try-catch语句,这样就有机会以适当的方式对错误给出响应,而不必沿用浏览器处理错误的机制。

try{
    doSomething();
}cathc(error){
    alert(error.message);//得到错误的信息
}finally{
        ...
}

使用window.onerror事件处理程序,这种方式可以接受try-catch不能处理的所有错误(仅限于IE和Firefox)。

抛出错误的语句:throw new Error(“xx”);

说到抛出错误和捕获错误,应当捕获哪些你确切知道该如何处理的错误,部或错误的目的在于避免以浏览器以默认方式处理他们,而抛出错误的原因在于提供错误发生的具体原因

错误事件(error)

任何没有通过try-catch事件处理的错误都会触发window对象的errors事件,onerror事件的处理程序不会创建event对象,只要发生错误,无论是不是浏览器生成的,都会触发error事件,并执行这个事件处理程序。

window.onerror =function(message,url,line){
    alert(message);
    return false;
}
通过返回false,实际上相当于try-catch,可以捕获任何无代码捕获处理的运行时错误。所以实际上是避免浏览器报告错误的最后一道防线

常见的错误类型

类型转换错误
  • 建议使用=== 避免类型转换
  • if等流程控制语句,建议判断条件使用boolean 值,而不是任意值转换成boolean值(instanceof/typeof 使用)
数据类型错误、通信错误

*格式不正确的url(发送给服务器之前,没有使用encodeURLComponent()对数据进行编码)

调试技术

(1)最常见的做法就是在要调试的代码中随处插入alert()函数。我们也不再建议在调试中使用alert()了,因为调试后还需要清理。
(2)将消息记录到控制台
对IE8、Firefox、Chrome和Safari来说,可以通过console对象向JavaScript控制台中写入消息,这个对象有下列方法:

  • error(message):将错误消息记录到控制台;

  • info(message):将信息性消息记录到控制台;

  • log(message):将一般消息记录到控制台;

  • warn(message):将警告消息记录到控制台。

    (3)将消息记录到当前页面

    就是在页面中开辟一小块区域,用于显示消息。

    (4)抛出错误

    如果错误消息很具体,基本上可以把它当做确定错误来源的依据。

猜你喜欢

转载自blog.csdn.net/whp404/article/details/79367251