2014-09-29 160 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