我有一个使用jquery验证的表单,表单在提交和模糊(onfucusout)上验证。我的一些字段使用jquery掩码插件进行掩码。当焦点进入焦点时,掩码会在字段(---)--- / ----中放置这样的东西。当用户点击该字段时,(---)--- / ----消失。我的问题是,尽管该字段是黑色的,但它会抛出验证错误,认为用户输入了(---)--- / ----而不是将其留空。
我的第一个想法是延迟验证,以便在(---)--- / ----消失后验证。我的问题是如何设置验证延迟,以便在字符消失后评估字段?如果这不是正确的解决方案,有人可以帮我解决这个问题。
我认为这是因为验证是在掩码字符消失之前触发的。我需要它在蒙面占位符消失后进行验证。谢谢你的帮助。
答案 0 :(得分:0)
我解决这个问题的方式。
在我的情况下输入掩码:“(999)999-9999”
对于我的测试示例,我执行了以下操作:
(1)我做的第一件事是确定我的DOM中生成了哪些字符。 例如 在FireBug控制台中使用以下代码。
$( '#MyPhoneNumberID')。KEYDOWN(函数(){ 的console.log($(本).VAL())
在我的情况下,它正在吐出以下内容( _) - ___
(2)我使用的工作是更新我的正则表达式(用于电话)并将掩码包含为正则表达式的一部分 例如“( _) - ___”或正确输入了电话号码。
使用正则表达式: “^:(1)(:\ S *(:(+) - ??????| |()\ S *)(\ d {3} | _ {3} | \ S {3} )?(:\ s *(?: - ?| |))\ S *)(\ d {3} | _ {3} | \ s {3})(?:?\ S *( - |。)?\ s *)?(\ d {4} | _ {4} | \ s {4})$“
希望这有帮助!