javascript - Jquery 验证 - 输入掩码冲突

标签 javascript jquery validation mask

我有一个使用 jquery 验证的表单,并且该表单在提交和模糊(onfucusout)时进行验证。我的一些字段具有使用 jquery mask 插件的 mask 。当它成为焦点时, mask 将在字段 (---)---/---- 中放置类似的内容。当用户单击此字段之外时,(---)---/---- 消失。我的问题是,尽管该字段保留为黑色,但它会抛出验证错误,认为用户已输入 (---)---/---- 而不是将其留空。

我的第一个想法是延迟验证,以便在 (---)---/---- 消失后验证。我的问题是如何将验证设置为延迟,以便在字符消失后评估字段?如果这不是正确的解决方法,有人可以帮助我解决这个问题。

我再次认为这是因为验证是在掩码字符消失之前触发的。我需要它在蒙面占位符消失后进行验证。谢谢你的帮助。

最佳答案

我解决这个问题的方式。

在我的例子中输入掩码:“(999) 999-9999”

对于我的测试示例,我执行了以下操作:

(1) 我做的第一件事是确定在我的 DOM 中生成了哪些字符。 例如 在 FireBug 控制台中使用以下代码。

$('#MyPhoneNumberID').keydown(function(){ console.log($(this).val())

就我而言,它吐出以下内容 (_) -___

(2) 我使用的解决方法是更新我的正则表达式(针对手机)并将掩码包含在正则表达式中 例如“(_) -___”或允许正确输入电话号码。

使用的正则表达式: "^(?:+)?(1)?(?:\s*(?:-|.|()?\s*)?(\d{3}|_{3}|\s{3} )(?:\s*(?:-|.|))?\s*)?(\d{3}|_{3}|\s{3})(?:\s*(?:- |.)?\s*)?(\d{4}|_{4}|\s{4})$"

希望这有帮助!

关于javascript - Jquery 验证 - 输入掩码冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9368806/

相关文章:

javascript - 你如何制作一个滚动页面?

html - 通过 webAudio API 播放 pcm 数据

javascript - ASP.NET 上的 Jquery 掩码不起作用

c++ - 如何在 C++ 中将用户输入验证为 double ?

javascript - 如何在我的网站上使用 HTML5 History Api?

javascript - .on ('click hover' ) 或 .on ('click' ) 和 .on ('hover' ) 有什么区别?

jquery - Yii 和 Bootstrap : How debug jQuery when I get a strange behavior?

javascript - 从 PHP 文件中提取要显示的单选按钮的值

C++ 验证 - 截断设置为下一个输入

jquery - 在提交之前检查文本区域是否有任何字符(并忽略空格)