我使用HTML5 "pattern“属性进行客户端验证(请不要告诉我服务器端验证,我已经知道了)。我想为使用没有“模式”支持的浏览器的用户使用Javascript或jQuery后备。有什么好方法可以做到这一点呢?
下面是一个输入元素的示例:
<input type=tel name=contact[phone] id=phone required pattern=^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$>
发布于 2011-11-28 11:24:25
在窗体的submit
事件上(或任何地方),使用其现有的pattern
属性对其进行验证。
var input = document.getElementsByName('contact[phone]')[0],
isValid = input.value.search(new RegExp(input.getAttribute('pattern'))) >= 0;
jsFiddle。
您需要首先检查浏览器的兼容性,看看它是否支持pattern
属性。你可以用Modernizr做到这一点。
发布于 2011-11-28 11:27:28
您可以使用Modernizr查看用户的浏览器所支持的内容。
Detecting HTML5 with Modernizr
Modernizer让你可以做这样的事情:
if (Modernizr.canvas) {
// let's draw some shapes!
} else {
// no native canvas support available :(
}
https://stackoverflow.com/questions/8291152
复制相似问题