理解HTML5必填项信息验证工作原理
2014-11-26 15:29
411 查看
本文是PHP100中文网原创翻译,转载请看文末的转载要求,谢谢合作!
任何Web开发者都能向我们保证,在窗体上提交输入的验证需要花费大量的时间来构建Web表单。当涉及到填写Web表单上的信息时,即使是最熟悉Web的用户也可以并且都会犯错。当用户点击页面上的提交按钮时,可能会导致不完整或不准确的数据被提交上去。
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015034/7b494d9cbe613129616340c8c219c7b4.png)
为了避免输入出错,开发者需要在加工信息前先进行验证。验证是在接受输入信息时最好的做法。把数据截止在门外越早越好。
验证在用户提交表单时,通过一个服务器端执行来完成的。在这种类型的验证里,用户提供的数据先被提交给服务器,服务器处理之后如果判定输入数据不正确或不完整,就会抛出一个相应的错误信息。
随着JavaScript使用的越来越多,浏览器已经对通过专门的验证库对客户端验证提供支持了。
HTML5背后的智囊团们意识到了Web开发者需要对表单信息验证提供支持,然后就内置了对验证的支持,并引进了在客户端验证的支持,以将输入错误消灭于萌芽状态。
通过HTML5表单里的客户端验证,用户不需要等所有的输入都完成并提交信息给服务器后,才能分辨出哪些是出错信息。实际上,标记元素能指出那些信息不是必填的,这个逻辑在提交按钮发送数据给远程服务器之前就已经开始执行了。
让我们来看几个支持客户端验证的属性吧。
‘required’
required属性能被指定用于任何输入标记元素来注释需要这些的地方。
一个简单的声明如下所示:
当上面的HTML在现代浏览器里被提出来时,你可以看到文本框有一个不同的阴影(这是我们为请求的元素指定的风格)。当用户跳过必填字段(通过点击它,然后并没有输入就到下一步),输入框会变成周围围绕红色边框的效果样式。
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015034/2f5f939e316e6b646780842a7a00a73a.png)
通过使用客户端验证必填字段,这样的造型有助于与用户沟通。
当表单被提交时(用户点击提交按钮),HTML5验证就开始执行了。但这个发生时,浏览器开始通过必填输入的列表来提示是否缺少要求的输入信息。
有时候并没有必要去验证,在这种情况下,我们可以设置窗体上的“movalidate”属性。
例如,下面的代码就没有让客户端验证规则启动:
如果你只想在某个按钮被按下的时候才跳过验证,你可以在提交输入类型上指定“formnovalidate”属性:
当我们点击第一个按钮时,我们看到验证规则起作用了,但当我们点击第二个按钮时,验证规则就没有了。
总结
本文中,我们学到了HTML5验证是怎么工作的,希望你会发现这点是有用的。
原文:Understanding How HTML5 Validation Works
译文:/article/1224218.html
(翻译:PHP100_Alex)
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
任何Web开发者都能向我们保证,在窗体上提交输入的验证需要花费大量的时间来构建Web表单。当涉及到填写Web表单上的信息时,即使是最熟悉Web的用户也可以并且都会犯错。当用户点击页面上的提交按钮时,可能会导致不完整或不准确的数据被提交上去。
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015034/7b494d9cbe613129616340c8c219c7b4.png)
为了避免输入出错,开发者需要在加工信息前先进行验证。验证是在接受输入信息时最好的做法。把数据截止在门外越早越好。
验证在用户提交表单时,通过一个服务器端执行来完成的。在这种类型的验证里,用户提供的数据先被提交给服务器,服务器处理之后如果判定输入数据不正确或不完整,就会抛出一个相应的错误信息。
随着JavaScript使用的越来越多,浏览器已经对通过专门的验证库对客户端验证提供支持了。
HTML5背后的智囊团们意识到了Web开发者需要对表单信息验证提供支持,然后就内置了对验证的支持,并引进了在客户端验证的支持,以将输入错误消灭于萌芽状态。
通过HTML5表单里的客户端验证,用户不需要等所有的输入都完成并提交信息给服务器后,才能分辨出哪些是出错信息。实际上,标记元素能指出那些信息不是必填的,这个逻辑在提交按钮发送数据给远程服务器之前就已经开始执行了。
让我们来看几个支持客户端验证的属性吧。
‘required’
required属性能被指定用于任何输入标记元素来注释需要这些的地方。
一个简单的声明如下所示:
<!DOCTYPE html> <html> <head> <style> textarea:required:invalid, input:required:invalid { background-color: lightyellow; } </style> </head> <body> <header> <h1>Validation demo</h1> <p>Demo showing HTML5 validation</p> </header> <footer> <h1></h1> <p>HTML Goodies</p> </footer> <form id="myform" action="#"> <input id="name" required><br> <input id="phone"><br> <input id="zip" required><br> <input type="submit"> </form> </body> </html>?
当上面的HTML在现代浏览器里被提出来时,你可以看到文本框有一个不同的阴影(这是我们为请求的元素指定的风格)。当用户跳过必填字段(通过点击它,然后并没有输入就到下一步),输入框会变成周围围绕红色边框的效果样式。
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015034/2f5f939e316e6b646780842a7a00a73a.png)
通过使用客户端验证必填字段,这样的造型有助于与用户沟通。
当表单被提交时(用户点击提交按钮),HTML5验证就开始执行了。但这个发生时,浏览器开始通过必填输入的列表来提示是否缺少要求的输入信息。
有时候并没有必要去验证,在这种情况下,我们可以设置窗体上的“movalidate”属性。
例如,下面的代码就没有让客户端验证规则启动:
<!DOCTYPE html> <html> <head> <style> textarea:required:invalid, input:required:invalid { background-color: lightyellow; } </style> </head> <body> <header> <h1>Validation demo</h1> <p>Demo showing HTML5 validation</p> </header> <footer> <h1></h1> <p>HTML Goodies</p> </footer> <form id="myform" action="#" novalidate> <input id="name" required><br> <input id="phone"><br> <input id="zip" required><br> <input type="submit"> </form> </body> </html>?
如果你只想在某个按钮被按下的时候才跳过验证,你可以在提交输入类型上指定“formnovalidate”属性:
<!DOCTYPE html> <html> <head> <style> textarea:required:invalid, input:required:invalid { background-color: lightyellow; } </style> </head> <body> <header> <h1>Validation demo</h1> <p>Demo showing HTML5 validation</p> </header> <footer> <h1></h1> <p>HTML Goodies</p> </footer> <form id="myform" action="#" > <input id="name" required><br> <input id="phone"><br> <input id="zip" required><br> <input id="button1" type="submit" > <input id="button2" type="submit" formnovalidate> </form> </body> </html>?
当我们点击第一个按钮时,我们看到验证规则起作用了,但当我们点击第二个按钮时,验证规则就没有了。
总结
本文中,我们学到了HTML5验证是怎么工作的,希望你会发现这点是有用的。
原文:Understanding How HTML5 Validation Works
译文:/article/1224218.html
(翻译:PHP100_Alex)
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
textarea:required:invalid, input:required:invalid {
background-color: lightyellow;
}
相关文章推荐
- HTML5必填项信息验证
- 深入理解PHP原理之错误抑制与内嵌HTML
- Struts2源码粗略分析四:理解xwork工作原理
- cookie入门理解--自动填写用户登录信息的实现原理
- 浏览器工作原理理解
- 调试器工作原理(3):调试信息
- 互联网工作原理(7.理解IP地址和Domain)
- JSP动态页面技术及其工作的原理的理解
- Java内存的原型及工作原理理解
- servlet获取前台的验证信息(html页面)
- (转)调试器工作原理(3):调试信息
- 深入理解PHP原理之错误抑制与内嵌HTML分析
- html解析器工作原理
- 调试器工作原理之三——调试信息
- HTML +JavaScript 正则表达式来验证信息
- 深入理解PHP原理之错误抑制与内嵌HTML
- 调试器工作原理之三——调试信息
- Ajax工作原理深入理解
- 调试器工作原理之三——调试信息
- Html语句验证用户信息