2013-03-21 7 views
-1

jquery의 텍스트 상자에 20 개 이상의 숫자를 입력 할 필요가 없습니다. 구현 방법.jquery 제한보다 큰 숫자

도움을 주시면 감사하겠습니다. 번호 확인을 위해

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

20 개의 숫자 또는 20 개의 숫자를 의미합니까? (후자의 경우 jQuery (또는 JS)가 필요하지 않으면'maxlength = "20"'을 설정하십시오. – nnnnnn

+0

왜이 문제를 해결하기 위해 jQuery를 사용 하시겠습니까? 입력의 maxlength 속성을 설정하는 것이 잘못된 것일까 요? 또한 코드 블록을 편집하여 구문 오류를 수정할 수 있도록했습니다. 질문을 제출하기 전에 미리보기 화면에서 코드를 확인하십시오! – AmericanUmlaut

+0

maxlength 속성을 사용하면 모든 곳에서 지원되며 스크립트가 필요하지 않습니다. – RobG

답변

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

:

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

또는 jQuery의'change()'http://api.jquery.com/change/를 사용하여 값을 잘라내어 길이를 확인하고 substr을 사용하여 길이가 20보다 긴 것을 자르십시오. 이것을 사용하지 마십시오. 보안으로서 클라이언트 사용자는 제출할 때 결과를 수정할 수 있습니다. +1 대답 : –

+0

@Allendar 문제를 해결하고 보편적 인 브라우저를 지원하는 속성이있는 경우 왜 이렇게 복잡한 솔루션을 사용해야합니까? – AmericanUmlaut

+0

나는 단지 그가 maxlength를 포함하는 그의 질문조차도 내용을 통제 할 수있는 방법을 지적하고있다. DOM의 내부 사용 경험이 없다는 것이 주로 입력 필드에 대한 제어를 지적한 이유입니다. –

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")).