在HTML5中,<input>元素增长了许多新的属性、方法及控件。本文章分别对这三方面进行介绍。javascript
1. 属性html
2. 方法java
3. 新控件 web
<input>元素在HTML5中新增长的属性有:autocomplete 、autofocus、form、formaction、formenctype、formmethod、formnovalidate、formtarget、max、min、minlength、pattern、placeholder、readonly、required等等。正则表达式
新增长的属性描述以下:浏览器
autocomplete :是否显示与如今输入内容相匹配的历史输入记录。<详细介绍>app
autofocus :当页面加载完成后,此元素得到焦点。<详细介绍>post
form :设置元素归属表单的ID。<详细介绍>ui
formaction :设置表单action属性的值。<详细介绍>url
formenctype :设置表单enctype属性的值。<详细介绍>
formmethod :设置表单method属性的值。<详细介绍>
formnovalidate :关闭表单的验证。<详细介绍>
formtarget :设置表单target属性的值。<详细介绍>
max :设置<input>元素中数字或日期控件的最大值。<详细介绍>
min :设置<input>元素中数字或日期控件的最小值。<详细介绍>
minlength :设置文本输入控件的内容最小长度。<详细介绍>
pattern :设置元素文本内容需匹配的正则表达式。<详细介绍>
placeholder :设置文本控件的预先显示内容。<详细介绍>
readonly :设置元素是否只读。<详细介绍>
required :设置控件是否为必填项。<详细介绍>
说明:设置当前文本元素中是否显示与如今内容相匹配的历史输入记录。
场景:搜索框须要此属性,而验证码就不须要。
可设置的值:只能够设置on、off两个值。
autocomplete="on" :显示匹配的历史输入记录。
autocomplete="off" :不显示匹配的历史输入记录。
示例:
<form action="#" > <p>验证码:<input type="text" autocomplete="off" /></p> <input type="submit" /> </form>
说明:若页面中有多个元素含有此属性,只会最前面的元素得到焦点。
示例:
<p>姓名:<input type="text" placeholder="请输入真实姓名" /></p> <p>地址:<input type="text" autofocus /></p>
说明:若元素不在表单标签里,可设置此值为须要归属的表单ID。
示例:
<input type="text" form="register_form" />
说明:可设置的值为post、get等。
说明:可应用于相似【暂存】操做。
示例:
<form action="#" > <p>用户名:<input type="text" name="loginName" required /></p> <input type="button" value="暂存" formnovalidate /> <input type="submit" /> </form>
说明:可设置的值为_self、_blank、_parent、_top等。
说明: 元素文本内容指定的正则表达式彻底匹配才会验证经过。
注意:
1) 浏览器不会验证空值,若想必填可加上 required 属性。
2) 若含有title属性的值,当匹配失败会显示title的信息。
示例:
<form action="#" > <p>手机号码:<input type="text" name="phoneNumber" pattern="[1]([3]|[5])[0-9]{9}" title="13或15开头的手机号码" /></p> <input type="submit" /> </form>
说明: 只有文档内容为空才会显示此属性设定的值。
示例:
姓名:<input type="text" placeholder="请输入真实姓名" />
说明: 当提交表单时,才会验证此元素是否填写,若没有填写,将显示警告信息并取消提交操做。
示例:
<form action="#" > <p>用户名:<input type="text" name="loginName" required /></p> <input type="submit" /> </form>
<input>元素在HTML5中增长了2个与校验相关的方法:
checkValidity() :判断控件的内容是否校验经过。
setCustomValidity() :设置校验不经过时的自定义信息。
返回值:
{boolean} 返回一个boolean值表示控件内容是否校验经过。
示例:
HTML:
网址:<input type="url" id="webURL" />
JavaScript:
// 内容为:www.cnblogs.com/polk6 console.log(document.getElementById('webURL').checkValidity()); // => false :验证不经过 // 内容为:http://www.cnblogs.com/polk6 console.log(document.getElementById('webURL').checkValidity()); // => true :验证经过
说明:在此元素上弹出一个警告框,显示自定义信息。
注意:只有表单验证时才会显示自定义的警告信息。
参数:
msg {string} :设置须要显示的信息。若为空值,将关闭警告框。
示例:
HTML:
<form> <p>新的密码:<input type="password" id="newPwd" oninput="validityPwd()" required /></p> <p>确认密码:<input type="password" id="newPwdConfirm" oninput="validityPwd()" /></p> <input type="submit" /> </form>
JavaScript:
// 校验2个密码是否一致 var validityPwd = function(){ var newPwd = document.getElementById('newPwd'); var newPwdConfirm = document.getElementById('newPwdConfirm'); if(newPwd.value != newPwdConfirm.value){ newPwdConfirm.setCustomValidity('两次密码输入不一致'); }else{ newPwdConfirm.setCustomValidity(''); } }
<input>元素的type属性的值,决定了<input>元素显示什么控件。
HTML5中,给<input>增长了许多新的控件,如color、date、email、month、number、range、search、tel、time、url、week等等。
若浏览器不支持新的控件,将默认以文本框展现(type="text")。
<input>元素type属性的值:
color :颜色控件。<详细介绍>
date :日期控件。<详细介绍>
email :电子邮件地址输入框。<详细介绍>
month :年月日历控件。<详细介绍>
number :数值输入框。<详细介绍>
range :滑动条。<详细介绍>
search :搜索框。<详细介绍>
tel :电话号码输入框。<详细介绍>
time :时间控件。<详细介绍>
url :网址输入框。<详细介绍>
week :周数控件。<详细介绍>
说明:显示一个颜色控件,点击选中须要的颜色。
属性:
value {string} :设置或获取颜色控件的值,值的格式要为:"#rrggbb"。
示例:
<input type="color" />
说明:显示一个日期控件,提供年月日的选择或自行输入。
属性:
value {string} :设置或获取日期控件的值,值的格式要为:"yyyy-MM-dd"。
示例:
<input type="date" value="2016-04-29" />
说明:显示一个只能输入电子邮件格式的输入框。
属性:
multiple :添加此属性后支持输入多个电子邮件地址,必须以','逗号隔开。
示例:
<input type="email" multiple />
说明:提供一个只能选择年、月的日历控件。
属性:
value {string} :设置或获取控件的值,值的格式要为:"yyyy-MM"。
示例:
<input type="month" value="2016-04" />
说明:只能输入数值相关字符,如数字、.(小数点)、-(负号)等。
属性:max表示数值最大值;min表示数值最小值;step表示微调按钮每次跳动的大小。
示例:
<input type="number" value="11.5" />
说明:以滑动条的形式表示数值。
属性:max表示数值最大值;min表示数值最小值。
示例:
<input type="range" max="100" min="0" value="80" />
说明:在Chrome中搜索框没内容时就像普通的文本输入框,当有内容时右边有个'x'符号,用以清除文本内容。
示例:
<input type="search" />
说明:电话号码的格式很是多,可包含数字、横线、括号等。浏览器并无制定电话号码格式,只是在移动端浏览器使用时默认显示数字键盘。
示例:
<input type="tel" />
说明:显示一个时间控件,提供时间的选择或自行输入。
属性:
value {string} :设置或获取时间控件的值,值的格式要为:"HH:mm",、"HH:mm:ss" 或 "HH:mm:ss.SSS"。
示例:
<input type="time" value="12:30" />
说明:输入的网址要加上协议前缀;如http://、https:// 等。
示例:
<input type="url" />
说明:显示一个可选择年数、周数的日历控件。
属性:
value {string} :设置或获取周数控件的值,值的格式要为:"yyyy-Www"。(格式中的W字符不能省略,而且ww周数要为2位数)
示例:
<input type="week" value="2016-W01"/>