2013-03-21 54 views
-1

需要限制在jquery中的文本框中輸入超過20個數字。 如何實現它。jquery限制數字大於要求

任何幫助表示讚賞。

<table> 
    <tr> 
     <td> 
      <h:inputText id="Actualcard" styleClass="input-text-bx"></h:inputText> 
     </td> 
    </tr> 
</table> 
+1

你的意思是20 _numbers_或20 _digits_? (如果後者不需要jQuery(或JS),只需設置'maxlength =「20」'。) – nnnnnn 2013-03-21 08:24:21

+0

爲什麼你想用jQuery來解決這個問題?只需設置輸入的maxlength屬性會出現什麼問題?另外,我編輯了代碼塊以使其可讀並修復語法錯誤 - 請在提交問題之前在預覽屏幕中檢查您的代碼! – AmericanUmlaut 2013-03-21 08:26:34

+0

只需使用maxlength屬性,它在任何地方都受支持,並且不需要任何腳本。 – RobG 2013-03-21 08:26:41

回答

1
$("#Actualcard").attr('maxlength','20'); 

對於數字驗證:

$("#Actualcard").validate({ 
    rules: { 
    field: { 
     required: true, 
     number: true 
    } 
    } 
}); 
+0

或者使用jQuery的'change()'http://api.jquery.com/change/,然後修剪該值並檢查它的長度並使用substr來保持任何長度超過20的長度。不要使用這個作爲安全措施,客戶端用戶仍然可以在提交時修改結果。 +1爲這個答案 – 2013-03-21 08:26:11

+0

@Allendar爲什麼使用這種令人費解的解決方案時,有一個屬性可以解決問題並具有通用瀏覽器支持? – AmericanUmlaut 2013-03-21 08:27:38

+0

我只是指出他如何控制內容,即使他的問題只涉及最大長度。他缺乏使用DOM內部體驗的經驗主要是指出對輸入領域的控制。它從來沒有傷害提供更多的信息比需要,所以他可以過濾出他想要的任何東西:) – 2013-03-21 08:30:34

0

HTML

<input type="text" name="Actualcard" maxlength="20" value="" /> 

JS

'use strict'; 
$(document).ready(function(){ 
    $("#your_from input[name=Actualcard]").change(function(){ 
     var input = trim($(this).attr('value')); 

     // Check if it's not all digits 
     if (!(typeof(input) == 'number' && parseInt(input) == input)) { 
      // Do something with the value here 
      $(this).attr('value', '0'); 
     } 
    }); 
}); 

這樣你就可以檢查輸入是否都是數字。如果input[name=Actualcard]工作,我不是100%。否則,在該輸入字段上使用額外的類來訪問它($("#your_from .my_digit_field"))。