在HTML中,表单由<form>标签构成。在javascript中,是由HTMLFormElement类型构成,这个类型继承自HTMLElement类型。
HTMLFormElement类型具有以下单独的属性和方法:
可以通过document.form来获取整个页面的form表单,返回一个集合,可以通过数值的索引活着name值来查找特定的表单:
var oneform = document.form[0];
var twoform = document.form[twoform];
每个表单都会有一个elements属性,里面包含了表单内所有组件的集合,它是一个有序的列表,里面包含了按顺序的组件索引,可以通过数值索引和name值来访问里面的组件。
var oneform = document.form[0];
var oneinput = oneform.elements[0];
可以通过编程方式提交表单,在表单的引用上调用submit()方法可以提交表单,但是不触发submit事件。相对于reset()方法,可以通过调用执行置空,但是它会触发reset事件。
focus()方法用户将浏览器的焦点设置到当前表单组件,而blur()方法则是将当前表单组件的焦点移开。
在<input>和<textarea>文本框的引用上调用此方法可以选择文本框的全部内容。
var inp = document.getElementsByTagName("input")[0];
input.addEventListener("focus",function(event){
event.target.select();
},false);select事件,当发生选择文本或者select()方法的时候发生
var inp = document.getElementsByTagName("input")[0];
input.addEventListener("select",function(event){
alert(this.type);
},false);
selectionStart属性和selectionEnd属性表示在文本框里面选择的文本开始位置和结束位置。
var area123 = document.getElementsByTagName("area")[0];
area123.value.substring(area123.selectionStart,area123.selectionEnd);substring()方法是基于字符串偏移量执行的操作。所以这里直接给这两个值可以获得文本。
HTML5把剪贴板事件纳入了规范,纳入规范的几个事件为:
Safari、chrome、firefox浏览器在三个操作前发生事件表现在针对文本框的上下文菜单中,而ie则是在触发copy、cut、paste事件前触发其他三个事件。
访问剪贴板中的数据可以访问clipboardData对象,此对象在ie中是window的属性,而在Safari、chrome、firefox中是在当前事件对象event的属性。
此对象有三个方法分别为:
getData()方法在接受一个参数,在ie中接受一个参数(数据格式),有两种数据格式"text","url",在Safari、chrome、firefox中接受的参数为MIME类型,text类型表示为"text/plain"。
setData()方法接受两个参数,一个是数据格式(ie和Safari、chrome、firefox不一样),一个是要放在剪贴板的文字。如果成功返回true反之为false。
clearData()方法不需要参数,执行过后清空剪贴板里的内容。
required属性
在表单组件中添加一个required属性,就可以让支持html5的浏览器让此组件不能为空。
<input type="text" id="kname" required />
stepDown()
接受一个参数,既在调用的组件上的数值减去传递的数值
<input type="text" id="kname" required />
document.getElementById("kname").stepDown(5);stepUp()
接受一个参数,既在调用的组件上的数值加上传递的数值
<input type="text" id="kname" required />
document.getElementById("kname").stepUp(5);pattern属性
pattern属性的值是一个正则表达式,用于匹配文本框中的值。如果只想输入数值,那么可以这样:
<input type="text" id="kname" pattern="/d+" required />
checkValidity()方法
checkValidity()方法可以检测整个表单是否的组件值是否有效,有效则返回true反之为false。
还可以在组件本身调用checkValidity()方法,如果组件的内容有效则返回true反之false。
validity属性
validity属性可以想象成是checkvalidity()方法的增强版,它里面提供了很多详细信息,比如说为什么无效。它里面包含了一些属性,每个属性都返回一个布尔值。
novalidate属性
此属性可以告诉表单不验证,即使是空的也不会进行验证。