<input> 上 HTML5 "pattern"属性的 Javascript 回退

标签 javascript jquery html

我正在使用 HTML5“模式”属性进行客户端验证(请不要告诉我服务器端验证,我有)。我想为使用没有“模式”支持的浏览器的用户使用 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+))?$>

最佳答案

在表单的 submit 事件(或任何地方)中,使用其现有的 pattern 属性对其进行验证。

var input = document.getElementsByName('contact[phone]')[0],
    isValid = input.value.search(new RegExp(input.getAttribute('pattern'))) >= 0;

jsFiddle .

您需要先检查浏览器兼容性,看看它是否支持 pattern 属性。你可以用 Modernizr 做到这一点.

关于&lt;input&gt; 上 HTML5 "pattern"属性的 Javascript 回退,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291152/

相关文章:

javascript - JS原型(prototype)无法设置未定义的属性 'moveRight'

javascript - 将带空格的字符串转换为不带空格的字符串和 camelCase javascript

javascript - 尝试将 http 响应分配给数据源时出现 Angular 表错误

javascript - 如何通过点击输入按钮来触发函数

javascript - 创建一个包含多个选项的下拉列表,其中包含自定义过滤器

html - .html 和 .xhtml 扩展名有什么区别? XHTML 是一种标记语言,或者它也是一种不同的扩展

javascript - jquery中如何显示图片

javascript - .parents() 在 Angular 中?

javascript - 使用指令从选择框中选择项目后如何设置输入框的焦点

javascript - 使用 JavaScript 将可重用内容注入(inject)网页?