Form

Form 是一个命名空间,同时也是一个模块,它汇聚了所有与表单相关的行为,对表单的操作和串行化进行了良好的封装。 但是它所提供的方法是针对整个表单的,而表单上的控件处理,由子模块 Form.Element 负责。

对于已扩展的表单元素(参见 “Prototype 如何扩展 DOM”), 大部分扩展方法都是直接可以使用的。

译注:注意本文中表单元素(Form Element 以及参数 formElement)和表单控件(Form Control)的区别: 表单元素指表单本身,即 <form> 标签所代表的元素。表单控件指表单中用于收集数据的元素,如 <input>、<select> 等等。

方法

disable

disable(formElement) -> HTMLFormElement

禁用表单中的所有控件。禁用后表单控件仍然可见,但不能再进行编辑。

enable

enable(formElement) -> HTMLFormElement

启用一个完全或部分控件被禁用的表单。

findFirstElement

findFirstElement(formElement) -> HTMLElement

在表单中查找第一个未隐藏、未禁用的控件。

focusFirstElement

focusFirstElement(formElement) -> HTMLFormElement

指定表单第一个未隐藏、未禁用的控件获取键盘焦点。

getElements

getElements(formElement) -> array

返回指定表单中所有控件的集合。

getInputs

getInputs(formElement [, type [, name]]) -> array

返回指定表单中所有 INPUT 元素的集合。若要通过 INPUT 元素的 type 和 name 属性限制返回的结果集,请使用可选的 typename 参数。

request
1.5.1

request([options]) -> new Ajax.Request

这是一个便捷的方法,可将表单串行化并通过 Ajax.Request 提交到表单 action 属性指定的 URL。参数 options 会被传递到 Ajax.Request 实例。在 options 参数中,可重定义表单的 HTTP 方式(译注:指 get、post 等等)并指定附加的参数。

reset

reset(formElement) -> HTMLFormElement

将表单中控件的值重置为默认值。

serialize

serialize(formElement[, getHash = false]) -> String | object

串行化表单数据为字符串,以适用于 Ajax 请求(默认行为)。若指定可选的参数 getHash 值为 true,则返回一个 Hash 对象,以表单控件的名称(name 属性)为“键”,控件所代表的数据为“值”。

serializeElements

serializeElements(elements[, getHash = false]) -> string | object

串行化表单控件数组为字符串,以适用于 Ajax 请求(默认行为)。若指定可选的参数 getHash 值为 true,则返回一个 Hash 对象,以控件的名称(name 属性)为“键”,控件所代表的数据为“值”。