16、调用 submit()方法的形式提交表单时,不会触发 submit 事件,因此要记得在调用此方法之前先验证表单数据。与调用 submit()方法不同,调用 reset()方法会像单击重置按钮一样触发 reset 事件。
17、读取或设置文本框的值时不建议使用标准的 DOM 方法,而是使用 value 属性:
var textbox = document.forms[0].elements["textbox1"]; textbox.value = "Some new value";
换句话说,不要使用 setAttribute()设置<input>元素的 value 特性,也不要去修改<textarea>元素的第一个子节点。原因很简单:对 value 属性所作的修改,不一定会反映在 DOM 中。因此,在处理文本框的值时,最好不要使用 DOM 方法。
18、不建议使用常规的 DOM 功能来访问 option 元素的数据,因为效率比较低,最好是使用特定于选项的属性,因为所有浏览器都支持这些属性:
var selectbox = document.forms[0].elements["location"]; //不推荐 var text = selectbox.options[0].firstChild.nodeValue; //选项的文本 var value = selectbox.options[0].getAttribute("value"); //选项的值 //推荐 var text = selectbox.options[0].text; //选项的文本 var value = selectbox.options[0].value; //选项的值
JavaScript高级程序设计(第3版)高清完整PDF中文+英文+源码