【问题标题】:Why does jQuery Validate ignore the Html input pattern?为什么 jQuery Validate 忽略 Html 输入模式?
【发布时间】:2019-04-03 10:37:08
【问题描述】:

我正在尝试使用 jQuery validate 来验证输入是否与输入模式匹配,但它似乎没有检查模式。

HTML:

<form id="testform">
    <input id="MyInput" 
           name="MyInput"
           pattern="[A-Za-z0-9-_]"
           minlength="6"
           data-msg-pattern="Wrong input"
           data-msg-minlength="Too short"
           data-msg-required="Input required"
           required/>
    <button class="btn btn-primary" id="AddMyInput">Add</button>
</form>

Javascript:

$("#AddMyInput").click(function () {
  event.preventDefault();
  myvalidator = $("#testform").validate();
  if (myvalidator.form()) {
    alert("Great!"); 
  } 
});

示例链接:JSFiddle

我尝试将输入限制为字母数字字符加上 - 和 _。但看起来 jQuery Validate 忽略了该模式,尝试输入“你好,伙计们!!”在输入字段中,它会提示'Great!',但输入无效。

【问题讨论】:

    标签: jquery html jquery-validate


    【解决方案1】:

    默认情况下,pattern 规则不属于此插件。但是,您只需 include the additional-methods.js file 即可添加它。

    你的 jsFiddle:jsfiddle.net/8mhzrdyv/


    附带说明,您不应该在 click 处理程序中初始化插件。查看您的简单演示,首先确实不需要click 处理程序。通过调用初始化插件的.validate(),插件本身会自动处理click事件。

    演示:jsfiddle.net/8mhzrdyv/1/

    $(function() {
        $("#testform").validate();  // initialize plugin
    });
    

    【讨论】:

    • 就这么简单吗?是的……谢谢伙计!
    • @CribAd,不客气。请查看我编辑的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 2018-09-18
    相关资源
    最近更新 更多