2014-11-25 4 views
0

숫자가있는 텍스트 상자를 사용하고 있습니다. xperia 모바일에 대해 동일한 텍스트 상자를 사용하는 경우 모든 값을 입력 할 수있는 키보드가 표시됩니다. 따라서 모든 값을 입력 할 수 있습니다. 사용자가 어떤 값을 입력하지 못하도록 제한하고 싶습니다. 사용자는 숫자 만 입력하면됩니다. 다음 코드를 시도했습니다.jquery 모바일에서 알파벳 입력 제한

*

document.getElementById('loginPin').addEventListener('keyup', function(e){ 
    var keyCode = ('which' in e) ? e.which : e.keyCode; 
    var isNumeric = (keyCode < 48 KeyboardEvent.DOM_VK_0 && keyCode > 57 KeyboardEvent.DOM_VK_9) || 
       (keyCode < 96 KeyboardEvent.DOM_VK_NUMPAD0 && keyCode > 105 KeyboardEvent.DOM_VK_NUMPAD9); 
    var modifiers = (event.altKey || event.ctrlKey || event.shiftKey); 

    return !isNumeric || modifiers; 
    var V = $(this).val(); 
    alert("hai"+V); 
    if (isNaN(V)) { 
     $(this).val(V.replace(/[^0-9]/g,'')); 
    } 


}, false); 

* 경고가, 거기가 작동하지 않는 다른 경우 그것은이 작동

. 그래서 이것을 해결할 수있는 제안.

+0

왜 클라이언트에서 그렇게할까요? 내게는 웹 사이트 트래픽의 약 0.2 %를 차지하는 기기를 타겟팅하는 데 낭비되는 시간처럼 들립니다. 그리고 어쨌든 서버 측 검사가 필요합니다. 따라서 브라우저가 HTML5 양식 필드를 지원하는 사용자는 입력 된 숫자 만 허용합니다. 구형 장치의 경우 사용자가 예기치 않은 입력을 한 경우 오류 메시지를 표시합니다. 그리고 물론 당신은 약간의 도움말 텍스트에서 사용자를위한 형식을 설명해야합니다 ... – feeela

+0

그들은 입력 메시지에서 텍스트를 차단하려는 오류 메시지를 원하지 않습니다. 이것은 나의 요구 사항이며 어떤 제안이든 그것을 해결합니다. – Elayaraja

+1

기존 플러그인을 사용하여 양식의 유효성을 검사하는 것이 좋습니다. http://jqueryvalidation.org/와 같이 그러면 어떤 형식의 검증도 쉽게 수행 할 수 있습니다. – olahell

답변

0
function numericInput(inputId){ 

     $('#' + inputId).keyup(function (e) { 
      var regex = new RegExp("^[0-9]+$"); 

      if (!regex.test($(this).val())) { 
       $(this).val($(this).val().slice(0, -1)); 
       e.preventDefault(); 
       return false; 
      } 

     }); 
} 
관련 문제