【问题标题】:restrict invalid chars from being typed - jquery-validate限制输入无效字符 - jquery-validate
【发布时间】:2014-09-29 18:40:35
【问题描述】:

我正在使用jquery-validation 插件来验证一个简单的表单。它工作得很好。 是否可以完全限制在textbox 中键入密钥。

我得到了这个FIDDLE,它有点接近我想要的。

<form id="myform" method="post" action="">
    <input type="text" id="cstName" name="cstName" />
    <input type="text" id="cntNumber" name="cntNumber" />

    <input type="submit" id="btn" name="btnSubmit" value="Submit" />
</form> 

$.validator.addMethod(
        "regex",
        function (value, element, regexp) {
            var re = new RegExp(regexp);
            return this.optional(element) || re.test(element);

        },
        "Please check your input."
);

$(document).ready(function () {

  $("#myform").validate({    
     rules: {
         cstName: {
             required: true, regex: /^[0-9\.\-\/]+$/
                },
         cntNumber: {
             required: true
           }
      }
  });
});

这是在我的MYFIDDLE 中创建的一个简单表单。

是否可以使用jquery-validate 插件限制输入单词。而且虽然有限制,但错误信息还能显示吗??

【问题讨论】:

  • 请在此处分享您的代码,以便为将来的 SO 访问者保留。
  • 它在小提琴中。
  • 代码在小提琴中而不是在这里
  • 由于您重写了用户输入数据的能力,因此使用输入验证插件确实没有意义。只需创建并切换您自己的错误消息。

标签: javascript jquery asp.net-mvc-4 jquery-validate masking


【解决方案1】:

如果您想完全禁止输入“无效”字符,您应该添加一个按键事件侦听器,当有人输入与您的正则表达式不匹配的字符时,它会返回 false。示例:

$('input[name=cntNumber]').on('keypress', function(e) {
    return String.fromCharCode(e.which).match(/[0-9\.\-\/]/) !== null;
});

【讨论】:

  • 这会阻止输入无效字母,但不会出现错误消息。就像它在插件的默认错误消息中的显示方式一样。
  • 你没有在你的问题中要求这个,但我想这并不太难。只需在按键事件中调用$('#myform').validate()
  • 你能演示一下吗?
  • 我试过form.validate,但它仍然没有显示警告信息
  • Correction Bjorn: .validate()initialization 方法。 .valid()testing 方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多