- 表单对应的则是 HTMLFormElement,类型,HTMLFormElement 继承了 HTMLElement
- acceptCharset:服务器能够处理的字符集;等价于 HTML 中的 accept-charset 特性
- action:接受请求的 URL;等价于 HTML 中的 action 特性。
- elements:表单中所有控件的集合( HTMLCollection )
- enctype:请求的编码类型;等价于 HTML 中的 enctype 特性
- length :表单中控件的数量。
- method :要发送的 HTTP 请求类型,通常是 “get” 或 “post” ;等价于 HTML 的 method 特性
- name :表单的名称;等价于 HTML 的 name 特性
- reset() :将所有表单域重置为默认值。
- submit() :提交表单
- target :用于发送请求和接收响应的窗口名称;等价于 HTML 的 target 特性
获取form表单
- document.forms:获取当前页面所有form,通过索引或使用name来获取
- var firstForm = document.forms[0] //取得页面中的第一个表单
- var myForm = document.forms[“form2”] //取得页面中名称为”form2″的表单
- 在较早的浏览器或者那些支持向后兼容的浏览器中,会把每个设置了 name 特性的表单作为属性保存在 document 对象中
- document.form2 可以访问到名为 “form2的表单
- 不推荐,可能未来浏览器不支持
提交表单
按钮提交
- <input type=”submit” value=”Submit Form”>//通用提交按钮
- <button type=”submit“>Submit Form </button>//提交按钮
- <input type=”image” src=”graphic.gif”>//图像按钮
- 表单中存在上面列出的任何一种按钮,那么在相应表单控件拥有焦点的情况下,按回车就可以提交表单(textarea按钮例外,文本区中回车会换行),没有提交回车无反应
- 以上方式提交表单时,浏览器会在将请求发送给服务器之前触发 submit 事件
- 阻止这个事件的默认行为就可以取消表单提交(prevetnDefault)
- 在submit时间中验证表单数据,并据以决定是否允许表单提交
编程提交
- formDom.submit();
- 这种方式无需表单包含提交按钮,任何时候都可以正常提交表单
- 不会触发 submit 事件因此要记得在调用此方法之前先验证表单数据
注意:提交表单可能被用户重复提交表单
重置表单
按钮重置
- <input type=”reset” value=”Reset Form”>
- <button type=”reset”>Reset Form</button>
- 单击重置按钮时,会触发reset事件,利用这个机会,可能取消重置操作(preventDefault取消事件默认行为则取消重置操作)
编码重置
- formDom.reset();
- 调用 reset() 方法会像单击重置按钮一样触发 reset 事件。
表单字段
- 使用element属性–
- formDom.element[0] //第一个表单控件
- formDOm.element[‘name’]//返回所有名字为name的表单控件
表单字段的属性
- disabled :布尔值,表示当前字段是否被禁用。
- form :指向当前字段所属表单的指针;只读
- name :当前字段的名称。
- readOnly :布尔值,表示当前字段是否只读
- tabIndex :表示当前字段的切换(tab)序号
- type :当前字段的类型,如 “checkbox” 、 “radio” ,等等。
- 在input/button中可动态修改,select只读
- select值为:’select-one’/’select-multiple’
- value :当前字段将被提交给服务器的值,对文件字段来说,这个属性是只读的(如文件在计算机中的路径)
- 除了form属性外,都可以js动态修改
表单字段的方法
- focus()//将浏览器的焦点设到表单字段即激活表单字段,使其可以响应键盘事件
- document.forms[0].elements[0]..focus();//监听onload事件
- focus的表单如果为hidden、或隐藏等,会导致异常
- html5定义了autofocus属性,自动关注焦点–Boolean类型 :兼容:ff4+,sf5+,chrome&opera9+,不支持的属性返回值为空字符串
- blur()
- change():
- 对于 input/textarea元素,在它们失去焦点且 value 值改变时触发