27. 表单处理

一、表单的基本元素

在 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 特性。

二、表单元素的属性

1、获取表单
并为其添加 id 特性,然后再像下面这样使用 getElementById() 方法找到它。

<xmp>
var form = document.getElementById("form1");
</xmp>

通过 document.forms 可以取得页面中所有的表单。

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

2、提交表单
用户单击提交按钮或图像按钮时,就会提交表单。使用 input 或 button 都可以定义提交按钮,只要将其 type 特性的值设置为 “submit” 即可,而图像按钮则是通过将 input 的 type 特性值设置为”image” 来定义的。因此,只要我们单击以下代码生成的按钮,就可以提交表单。

<xmp>

<input type="submit" value="Submit Form">

<button type="submit">Submit Form</button>

<input type="image" src="graphic.gif">
</xmp>

只要表单中存在上面列出的任何一种按钮,那么在相应表单控件拥有焦点的情况下,按回车键就可以提交该表单。( textarea 是一个例外,在文本区中回车会换行。)如果表单里没有提交按钮,按回车键不会提交表单。

<xmp>
var form = document.getElementById("myForm");
EventUtil.addHandler(form, "submit", function(event){
    //取得事件对象
    event = EventUtil.getEvent(event);
    //阻止默认事件
    EventUtil.preventDefault(event);
});
</xmp>

以编程方式调用 submit() 方法也可以提交表单。

<xmp>
var form = document.getElementById("myForm");
// 提交表单
form.submit();
</xmp>

3、重置表单
在用户单击重置按钮时,表单会被重置。使用 type 特性值为 “reset” 的 input或 button 都可以创建重置按钮,如下面的例子所示。

<xmp>
<input type="reset" value="Reset Form">

<button type="reset">Reset Form</button>
</xmp>

以编程方式调用 reset() 方法也可以重置表单。

<xmp>
var form = document.getElementById("myForm");
// 重置表单
form.reset();
</xmp>

4、表单元素属性

参数描述
disabled布尔值,表示当前字段是否被禁用。
form指向当前字段所属表单的指针;只读。
name当前字段的名称。
readOnly布尔值,表示当前字段是否只读。
tabIndex表示当前字段的切换(tab)序号。
type当前字段的类型,如 “checkbox” 、 “radio” ,等等。
value当前字段将被提交给服务器的值。对文件字段来说,这个属性是只读的,包含着文件在计算机中的路径。
评论

0 条评论