1.form元素对应的HTMLFormElement对象特有的属性和方法(部分):
(1)elements:表单中所有控件的集合(HTMLCollection)
(2)reset():将表单域重置为默认值
(3)submit():提交表单
2.提交表单时,浏览器会在将请求发送前触发submit事件。阻止这个事件的默认行为就可以取消表单提交。在Javascript中,以编程方式调用submit()方法也可以提交表单。而且,这种方式不许表单包含提交按钮,但值得注意的是以此种方式提交表单时,不会触发submit事件。
3.解决重复提交表单的办法有两种:在第一次提交表单后禁用提交按钮;或者利用onsubmit事件处理程序取消后续的表单提交操作。
4.使用type特性值为『reset』的<input>和<button>都可以创建重置按钮。JS同样可以执行此操作,但与提交表单不同的是,JS调用reset()方法重置表单是会触发reset事件的。
5.表单控件元素共有的属性如下:
(1)disabled:布尔值,表示当前字段是否被禁用。
(2)form:指向当前字段所属表单的指针;只读。
(3)name:当前字段的名字。
(4)readOnly:布尔值,表示当前字段是否只读。
(5)tabIndex:表示当前字段的切换序号。
(6)type:当前字段的类型。
(7)value:当前字段将被提交给服务器的值。
除了form属性之外,可以通过JS动态修改其他任何属性。
6.表单控件元素共有的方法如下:
(1)focus:用于将浏览器的焦点设置到表单字段。(不能设置到隐藏的元素中)
(2)blur
7.表单控件元素共有的事件如下:
(1)blur
(2)change:对于\<input\>和<textarea>元素,在它们失去焦点且value值改变时触发;对于\<select\>元素,,在其选项改变时触发。
(3)focus
**文本框脚本**
8.\<input\>元素通过『size』特性,可以指定文本框中能够显示的字符数;而maxlength特性则用于指定文本框可以接受的最大字符数。
9.<textarea>元素通过『rows』特性指定多行文本框的字符行数,使用『cols』特性指定多行文本框的字符列数。<textarea>的初始值要放在<textarea>和</textarea>之间。不能在HTML中给多行文本框指定最大字符数。
10.不建议使用标准DOM方法中的setAttribute/getAttribute设置/获取文本框的值,也不要去修改textarea的第一个子节点。因为对value属性所作的修改,不一定会反映在DOM中。应使用以下方法:
~~~
var textarea1 = document.getElementById('textarea-1');
textarea1.value = 'ken chung';
~~~
11.单行与多行文本框都支持select()方法,用于选择文本框中的所有文本。调用这个方法时大多数浏览器都会将焦点设置到相应文本框中。这个技术可以让用户不必一个个地删除文本,大幅提高了表单的易用性。
12.selectionStart和selectionEnd保存着基于0的数值,表示所选择文本的范围,配合substring()方法可以方便得取得用户在文本框中选择的文本。
13.setSelectionRange()方法可以选择文本框的部分内容,这在实现高级文本输入框时很有用,例如提供自动完成建议的文本框。
14.过滤输入(屏蔽字符输入、操作粘贴板)
15.在用户填写完当前字段时,自动将焦点切换到下一个字段,可以增强表单字段的易用性。
**选择框脚本**
16.选择框控件(select)共有的属性:
(1)multiple:布尔值,表示是否允许多项选择;等价与HTML中的multiple特性。
(2)options:控件中所有option元素的HTMLCollection。
(3)selectedIndex:基于0的选中项的索引,如果没有选中项,则值为-1.对于支持多选的控件,只保存选项中第一项的索引。
(4)size:选择框中可见的行数;等价于HTML中的size特性。
17.选择框控件(select)共有的方法:
(1)add(newOption,relOption):向控件中插入新option元素,其位置在相关项之前。
(2)remove(index):移除给定位置的选项。
18.option元素对应对象的属性:
(1)index:当前选项在options集合中的索引。
(2)label:当前选项的标签,;等价于HTML中的label特性。
(3)selected:布尔值,表示当前选项是否被选中。
(4)text:选项的文本。
(5)value:选项的值;等价于HTML中的value特性。
同样不推荐使用标准DOM方法修改option元素对象的属性。
19.选择框控件的change事件与其他表单字段的change事件触发条件不一样。其他表单字段的change事件是在值被修改切焦点离开当前字段时触发,而选择框的change事件只要选中了选项就会触发。
20.在JavaScript中,可以利用表单字段的type属性,连同name和value一起实现对表单的序列化。
21.表单提交期间,浏览器将数据发送给服务器遵循以下几点:
(1)对表单字段的名称和值进行URL编码,使用&分隔。
(2)不发送禁用的表单字段。
(3)只发送勾选的复选框和单选按钮。
(4)不发送type为reset和button的按钮。
(5)多选选择框中的每个选中的值单独一个条目。
(6)在单击提交按钮提交表单的情况下,也会发送提交按钮;否则,不发送提交按钮。也包括type为image的input元素。
(7)select元素的值,就是选中的option元素的value特性的值。如果option元素没有value特性,则是option元素的文本值。