您的位置:首页 > Web前端 > HTML5

理解HTML5必填项信息验证工作原理

2014-11-26 15:29 411 查看
本文是PHP100中文网原创翻译,转载请看文末的转载要求,谢谢合作!
任何Web开发者都能向我们保证,在窗体上提交输入的验证需要花费大量的时间来构建Web表单。当涉及到填写Web表单上的信息时,即使是最熟悉Web的用户也可以并且都会犯错。当用户点击页面上的提交按钮时,可能会导致不完整或不准确的数据被提交上去。

为了避免输入出错,开发者需要在加工信息前先进行验证。验证是在接受输入信息时最好的做法。把数据截止在门外越早越好。



验证在用户提交表单时,通过一个服务器端执行来完成的。在这种类型的验证里,用户提供的数据先被提交给服务器,服务器处理之后如果判定输入数据不正确或不完整,就会抛出一个相应的错误信息。



随着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在现代浏览器里被提出来时,你可以看到文本框有一个不同的阴影(这是我们为请求的元素指定的风格)。当用户跳过必填字段(通过点击它,然后并没有输入就到下一步),输入框会变成周围围绕红色边框的效果样式。




通过使用客户端验证必填字段,这样的造型有助于与用户沟通。



当表单被提交时(用户点击提交按钮),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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: