2016-10-26 2 views
0

정수 만 허용하는 입력 텍스트를 정의해야합니다.입력 필드가 jQuery로 숫자 만 허용하도록 설정

정규 표현식으로 시도했지만 값의 소수 부분은 계속 표시됩니다.

$(document).on("input","input", function(e) { 
    this.value = this.value.replace(/[^\d\\-]/g,''); 
}) 
+0

은 왜 안 유형 번호를 사용할 수 있습니까? – guradio

+0

하지만 입력시 십진수 (.)를 사용할 수도 있으므로 입력 할 필요가 없습니다 (.). – durga

답변

0
Finally I solved the above issue with my requirement to type only number is 

$(document).on("input", ".skilltxt", function(e) { 
       this.value = this.value.replace(/[^\d]/g,''); 
      }); 
      $(".skilltxt").on('paste',function(e) { 

        if(gBrowser=='IE') { 
         var clipboardData, pastedData; 
         clipboardData = e.clipboardData || window.clipboardData; 
          pastedData = clipboardData.getData('Text'); 

        } 
        else if((gBrowser=='Firefox')|| (gBrowser=='Chrome')){ 
          var pastedData = (e.originalEvent || e).clipboardData.getData('text/plain'); 
          window.document.execCommand('insertText', false, pastedData) 
        } 
       if(Math.floor(pastedData) == pastedData && $.isNumeric(pastedData)){ 
        $(this).val($(this).val().replace(/[^\d]/g,'')); 
        } 
        else{ 
        return false; 
        } 
      }); 
0

간단하고 사용하기 쉬운 :

나는이 기능을 사용했다. 사용해보기 : 수정 : 붙여 넣기를 방지하기 위해 onblur 이벤트에 전화하십시오. 숫자 인 경우
function numOnly(selector){ 
 
    selector.value = selector.value.replace(/[^0-9]/g,''); 
 
}
<input type="text" onkeyup="numOnly(this)" onblur="numOnly(this)">

+0

마우스 오른쪽 버튼을 클릭하고 붙여 넣기해도 키 업이 트리거되지 않습니다. – Archer

+0

@Archer, 고맙습니다. 전에 생각하지 않았습니다. 이제는 수정되었습니다. 바로 확인해보세요. – AHJeebon

0

당신은 keydown에 감지 할 수 있으며 숫자 인 경우 붙여 넣기 이벤트를 확인하고 숫자가 아닌 모든를 제거 할 수 있습니다. 이것은 도트를 제거합니다.

원본 소스 :keydown detect는 : Paste remove

이 코드는 아래의 원본 소스에서 수정되었습니다.

시도하십시오 : 어떻게 이런 일에 대한

$("#input").on("paste", function() { 
 
    setTimeout(function(){ 
 
    if ($('#input').val() != $('#input').val().replace(/\D/g,"")) 
 
    { 
 
     $('#input').val($('#input').val().replace(/\D/g,"")); 
 
    } 
 
    },10) 
 
}); 
 

 
$('#firstrow').on('keydown', '#input', function(e){-1!==$.inArray(e.keyCode,[46,8,9,27,13])||/65|67|86|88/.test(e.keyCode)&&(!0===e.ctrlKey||!0===e.metaKey)||35<=e.keyCode&&40>=e.keyCode||(e.shiftKey||48>e.keyCode||57<e.keyCode)&&(96>e.keyCode||105<e.keyCode)&&e.preventDefault()});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="firstrow"> 
 
    <input id="input" type="text"> 
 
</div>

0

를?

$('input').on('input blur paste', function(){ 
 
$(this).val($(this).val().replace(/\D/g, '')) 
 
})
<input> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

관련 문제