2014-09-29 236 views
0

我使用jquery-validation插件来验证一个简单的表单。它运作良好。 是否可以限制密钥完全在textbox中输入。限制输入无效字符 - jquery-validate

我得到这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插件键入单词。虽然它限制,错误信息仍然可以显示?

+0

请在此共享您的代码,以便将来访问者保存为SO。 – 2014-09-29 18:42:57

+0

它那里的小提琴。 – user2322507 2014-09-29 18:43:17

+0

代码处于小提琴中,而不是在这里 – 2014-09-29 18:43:37

回答

1

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

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

这会阻止输入无效的字母,但不会显示错误消息。就像它出现在插件的默认错误消息中一样。 – user2322507 2014-09-29 19:14:04

+0

你没有问你的问题,但我想这不是太难。只需在按键事件中调用'$('#myform').validate()'。 – Bjorn 2014-09-29 19:16:37

+0

可以请你证明一下吗? – user2322507 2014-09-29 19:19:19