在HTML中,表单时<form>元素来表示的,在JavaScript中,表单对应的是HTMLFormElement类型。
HTMLFormElement继承了HTMLElement,所以有相同的默认属性。
他的独特属性和方法:
acceptCharset:服务器能够处理的字符集
action:接受请求的URL
elements:表单中所有的控件集合
enctype:请求的编码类型
length:表单中控件的数量
method:要发送的Http请求类型,通常是“get”和“post”
name:表单的名称
reset():将所有表单域重置为默认值
submit():提交表单
target:用于发送请求和接受响应的窗口名称
获取方式:
① 通过id或者class
② var firstForm=document.form[0] //通过这个方法可以取得页面中所有的表单,然后用索引的方式
提交表单
三种方式生成提交按钮:

提交表单时,浏览器会在将请求发送给服务器之前触发submit事件。这样就有机会验证表单数据,并决定是否允许提交表单。
阻止表单提交: 事件中调用preventDefault()
提交表单:除了提交按钮,还可以用JavaScript中的submit()方法(先获取表单)
关于重复提交表单:在第一次提交表单后禁用提交按钮,或者利用onsubmit事件处理程序取消后续的表单提交操作
重置表单
在重置表单时,所有表单字段都会恢复到页面刚加载完毕时的初始值,有默认值就默认值,无值就无值。

阻止重置表单:preventDefault(event)
重置表单:除了提交按钮,还可以用JavaScript中的form.reset()方法(先获取表单)
表单字段
var form=document.getElementById("myForm");
var a=form.elements[0]; //访问表单中的第一个字段
var b=form.elements.length; //获取表单所有字段的数量
var c=form.elements["color"]; //获取值为color的元素,如果有多个,则获取一个数组
1. 共有的表单字段属性
disable:布尔值,当前字段是否被禁用
form:指向当前字段所属的表单指针,只读
name:名称
readOnly:布尔值,表示当前字段是否只读
tabIndex:表示当前字段的切换tab
type:字段的类型
value:字段将提交给服务器的值
第一次单机提交按钮后,使按钮禁用:
要在submit事件触发后添加禁用,因为有的浏览器是先触发onclick再触发submit事件,有的则是先submit事件再onclick事件。(取得提交按钮,然后设置点击提交禁用)
2. 共有的表单字段方法
每个表单字段都有两个方法:focus()和blur()
HTML5新增了个,autofocus属性=focus()
3. 共有的表单字段事件
blur focus
change:对于input和textarea元素,在他们失去焦点且value值改变时触发,select元素在其选项获得焦点时触发
文本框脚本
两种方式表现文本框:<input>单行文本和<textarea>多行文本
size:指定文本框中能显示的字符数 maxlength:文本框接受的最大字符数

rows:文本框的字符行数 cols:文本框的字符列数
textarea不可以指定最大字符数

HTML5约束验证API
required属性:表示在提交表单时不能空着
type还有两个属性,分别是email,url
novalidate属性:告诉表单不进行验证
formnovalidate属性:指定某个属性不用验证
选择框脚本
add(newoptipn,index):插入新的option元素
multiple:布尔值,表示是否允许多项选择
options:控件中所有的option元素
remove(index):移除给定位置的option元素
index:当前选项在option集合中的索引
label:当前选项的标签
selected:布尔值,当前选项是否被选中
text:选项的文本
value:选项的值