2012-08-02 38 views
0

字符我已經設置文本字符的限制,但在打字輸入,如果從9個字符超過它繼續不使用標籤限制在HTML

<input data-val="true" data-val-regex="Please enter valid SSN" data-val-regex-pattern="^\d{3}-\d{2}-\d{4}$" id="Ssn" name="Ssn" type="text" value="" class="valid"> 

我想它應該停止鍵入另一場採取投入。

回答

0

你應該在這個代碼使用jQuery例如

<input data-val="true" maxlength=9 data-val-regex="Please enter valid SSN" data-val-regex-pattern="^\d{3}-\d{2}-\d{4}$" id="Ssn" name="Ssn" type="text" value="" class="valid"><br> 
<script lang="text/javascript"> 
    $("#Ssn").keyup(function(e) 
    { 
     var str=$("#Ssn").val(); 
     if(str.length==9) 
     { 
      $("#Ssn").blur(); 
     } 
    }); 
</script> 

你必須包括jQuery的正則表達式在所有瀏覽中都不完全支持rs - 具體來說,那些支持他們的人並不總是服從複雜的正則表達式。至少在Safari中我注意到了這一點。

maxlength屬性應該工作。不知道爲什麼它不適合你。也許發佈一個JSBIN例子讓我們看看。

這就是說,對於複雜的客戶端表單驗證,您仍然需要依賴javascript來支持更廣泛的瀏覽器。

+0

OP不希望文本繼續進入下一個領域,這是他想停止的一個不希望的效果。 – 2012-08-02 06:05:40

+0

也許改變按鍵事件是按鍵,這樣你可以模糊並返回false,如果長度已經是9 – Qpirate 2012-08-02 06:18:51

0

**編輯誤區

+0

它不起作用。 :( – Billz 2012-08-02 06:03:27

+0

它應該停止任何輸入過去9個字符......不知道爲什麼這不適合你 – Kamal 2012-08-02 06:12:09

0

模式屬性使用maxlength屬性

<input data-val="true" data-val-regex="Please enter valid SSN" data-val-regex-pattern="^\d{3}-\d{2}-\d{4}$" id="Ssn" name="Ssn" type="text" value="" class="valid" maxlength="9">