2014-12-11 2 views
2

나는 보통의 입력을 처리하는 다음 코드를 가지고 - 그것은 단지 숫자가 아닌 문자, 기호 또는 공백 수 :JS/jQuery를 사용하여 문자와 기호를 붙여 넣은 내용을 제거 하시겠습니까?

self.press = function (data, event) { 
     if (event.which == 0 || event.which == 32 || isNaN(String.fromCharCode(event.which))) { 
      event.preventDefault(); //stop character from entering input 
     } else if (event.which == 13 && self.search().length != 10) { 
      toastr.warning('number must be 10 characters'); 
      event.preventDefault(); 
     } else if (event.which == 13 && self.search().length == 10) { 
      // nav to /k/# 
      window.location.replace("/k/" + self.search()); 
     } 
     return true; 
    }; 

을하지만 필드에 문자와 기호를 붙여 넣을 수 있습니다. 붙여 넣기에서 번호 이외의 문자를 제거하려면 어떻게해야합니까?

답변

1

당신은 내용의 변경을 수신하는 입력 필드의 oninput 이벤트를 사용하고 그에 따라 처리 할 수 ​​

$("#field").on('input', function(v){ 
 
    var val = $(this).val(); 
 
    val = val.replace(/\D/g, ''); 
 
    $(this).val(val); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<input id="field" />

참고하십시오 oninput 이벤트는 IE 9에서 지원까지한다. 구형 브라우저를 지원하려면 setInterval을 사용하여 입력 내용을 반복적으로 확인하거나 this shim을 시도 할 수 있습니다.

관련 문제