14.1 表单的基础知识

优质
小牛编辑
120浏览
2023-12-01

在HTML 中,表单是由<form>元素来表示的,而在JavaScript 中,表单对应的则是HTMLForm-Element 类型。HTMLFormElement 继承了HTMLElement,因而与其他HTML 元素具有相同的默认属性。不过,HTMLFormElement 也有它自己下列独有的属性和方法。

  • 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>元素引用的方式有好几种。其中最常见的方式就是将它看成与其他元素一样,并为其添加id 特性,然后再像下面这样使用getElementById()方法找到它。

var form = document.getElementById("form1");

其次,通过document.forms 可以取得页面中所有的表单。在这个集合中,可以通过数值索引或name 值来取得特定的表单,如下面的例子所示。

var firstForm = document.forms[0]; //取得页面中的第一个表单
var myForm = document.forms["form2"]; //取得页面中名称为"form2"的表单

另外,在较早的浏览器或者那些支持向后兼容的浏览器中,也会把每个设置了name 特性的表单作为属性保存在document 对象中。例如,通过document.form2 可以访问到名为"form2"的表单。不过,我们不推荐使用这种方式:一是容易出错,二是将来的浏览器可能会不支持。
注意,可以同时为表单指定id 和name 属性,但它们的值不一定相同。