2010-05-31 1 views
0

나는 단지 텍스트 상자에 허용되는 숫자를 허용 할 나는 이미 만 허용 번호로 이벤트를 onKeyDown에 수행하고 Ctrl + V를 방지하지만 두 가지 문제가있다 : 바로 다음 붙여 넣기를 클릭 한 경우마우스 오른쪽 버튼을 사용 중지하지 않고 JavaScript를 사용하여 TextBox에 숫자 만 입력하는 방법은 무엇입니까?

  1. 을 그래서 어떤 문자를 입력 할 수 있으며, 내가 드래그하고

를 입력됩니다 텍스트를 떨어 뜨리면 내가 oncontextmenu="return false;"

  • 에 의해 비활성화 마우스 오른쪽 버튼을 클릭하지 않고 솔루션을 원하는 모든에서 작업 할 수있는 솔루션이 있습니까 문제없이 브라우저?

  • 답변

    1

    텍스트 상자의 onchange 이벤트에서 숫자가 아닌 문자를 필터링하고 텍스트 상자로 다시 설정하면됩니다.

    +0

    이 텍스트 상자를 잃게 초점 후 해고 변경 이벤트와 같은 문자를 입력 할 수는 ... 그 ... 수 –

    0

    onpaste 이벤트를 사용할 수 있습니다. 붙여 넣을 때마다 잡을 수 있습니다.
    이벤트와 관련하여 Andy's answer을 참조 할 수 있습니다.

    +0

    가 onpaste가 모든 브라우저에서 작동하지 않는 것보다 사용자가 다른 입력 할 수 있도록하지 않는 것입니다 문제는 –

    +0

    Ovidiu가 말했듯이 당신은 onchange 이벤트를 처리해야합니다. – Ahmed

    0

    최근에 jquery를 사용했습니다. 여기에 코드가 있습니다. html에 jquery 파일을 포함하십시오.

    <script type="text/javascript" src="js/vendor/jquery.validate.min.js"></script> 
    

    이 스크립트를 html에 넣습니다.

    <script> 
    $('#phoneNum').keypress(function(e) { 
        var a = []; 
        var k = e.which; 
    
        for (i = 48; i < 58; i++) 
         a.push(i); 
    
        if (!(a.indexOf(k)>=0)) 
        { 
         if(k != 45){ 
          e.preventDefault(); 
         } 
        } 
    }); 
    </script> 
    

    입력 내용은 다음과 같습니다. 아이디 인 phoneNume. 내가 필요한

    <input type="tel" id="phoneNum" /> 
    
    관련 문제