Javascript Jquery验证-输入掩码冲突

Javascript Jquery验证-输入掩码冲突,javascript,jquery,validation,mask,Javascript,Jquery,Validation,Mask,我有一个使用jquery验证的表单,该表单在提交和模糊时进行验证(onfucusout)。我的一些字段具有使用jquery掩码插件的掩码。当它聚焦时,遮罩会在字段(---)中放置类似的内容。当用户从该字段中单击时,(--)将消失。我的问题是,尽管字段保留为黑色,但它会抛出验证错误,认为用户输入了(-)-/----而不是将其保留为空 我的第一个想法是在validate上设置一个延迟,以便它在(---)消失之后进行验证。我的问题是,您如何将validate设置为delay,以便在字符消失后对字段进行

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

我的第一个想法是在validate上设置一个延迟,以便它在(---)消失之后进行验证。我的问题是,您如何将validate设置为delay,以便在字符消失后对字段进行求值?如果这不是正确的解决方案,有人能帮我解决这个问题吗


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

我解决这个问题的方式

我的输入掩码:“(999)999-9999”

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

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

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

在我的情况下,它吐出了以下内容(-___

(2) 我使用的方法是更新我的正则表达式(用于电话),并将掩码作为正则表达式的一部分 e、 g.“(-”或正确键入的电话号码是允许的

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

希望这有帮助