【问题标题】:Jquery Validate - Input Mask ConflictJquery Validate - 输入掩码冲突
【发布时间】:2012-02-20 21:39:43
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript jquery validation mask


    【解决方案1】:

    我解决这个问题的方式。

    在我的例子中输入掩码: "(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})$"

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2016-10-24
      • 2012-04-26
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多