表单验证禁用
通过指定 novalidate 属性可以禁止对表单进行任何验证。这个值也可以通过 JavaScript 属性 noValidate 检索或设置,设置为 true 表示属性存在,设置为 false 表示属性不存在:
document.forms[0].noValidate = true; // 关闭验证
如果一个表单中有多个提交按钮,那么可以给特定的提交按钮添加 formnovalidate 属性,指定通过该按钮无须验证即可提交表单。在这个例子中,第一个提交按钮会让表单像往常一样验证数据,第二个提交按钮则禁用了验证,可以直接提交表单。我们也可以使用 JavaScript 来设置这个属性:
// 关闭验证
document.forms[0].elements["btnNoValidate"].formNoValidate = true;
选择框编程
选择框是使用 <select> 和 <option> 元素创建的。为方便交互,HTMLSelectElement 类型在所有表单字段的公共能力之外又提供了以下属性和方法:
- add(newOption, relOption):在
relOption之前向控件中添加新的选项。 - multiple:布尔值,表示是否允许多选,等价于 HTML 的
multiple属性。 - options:控件中所有
<option>元素的HTMLCollection。 - remove(index):移除给定位置的选项。
- selectedIndex:选中项基于 0 的索引值,如果没有选中项则为 -1。对于允许多选的列表,始终是第一个选项的索引。
- size:选择框中可见的行数,等价于 HTML 的
size属性。
选择框的 type 属性可能是 "select-one" 或 "select-multiple",具体取决于 multiple 属性是否存在。当前选中项根据以下规则决定选择框的 value 属性:
- 如果没有选中项,则选择框的值是空字符串。
- 如果有一个选中项,且其
value属性有值,则选择框的值就是选中项value属性的值。即使value属性的值是空字符串也是如此。 - 如果有一个选中项,且其
value属性没有指定值,则选择框的值是该项的文本内容。 - 如果有多个选中项,则选择框的值根据前两条规则取得第一个选中项的值。
来看下面的选择框示例结构:
< =>
Sunnyvale
China
Australia

