2014-02-05 3 views
1

숫자, 쉼표, 점만 허용하는 자바 스크립트를 작성했습니다. 4 개의 텍스트 상자에 적용했습니다. 내 문제는 내가 그 중 네 자바 스크립트를 적용하는 데이터의 다른 유형을 소요 10 텍스트 상자가 있습니다. 나는 다른 텍스트 상자에 탭 키를 사용할 수 있지만 자바 스크립트를 적용하여 텍스트 상자를 사용하여 courser를 이동할 수는 없습니다. 내 스크립트에서해야 할 변화가 있습니까? 고마워요.자바 스크립트를 사용하여 텍스트 상자에 숫자 만 허용 할 때 탭 키 허용

자바 스크립트 : -

function isNumberCommaDot(evt) { 
     var theEvent = evt || window.event; 
     var key = theEvent.keyCode || theEvent.which; 
     key = String.fromCharCode(key); 
     if (key.length == 0) return; 
     var regex = /^[0-9,\9\b]*\.?[0-9]*$/; 
     if (!regex.test(key)) { 
      theEvent.returnValue = false; 
      if (theEvent.preventDefault) theEvent.preventDefault(); 
     } 
    } 

내가 정규식 \ 9를 사용하지만, 여전히 탭 키를 수락하지 (9 아스키 문자입니다 TAB 키 위해.)

답변

5

당신은 그것이 여부를 확인 할 수 있습니다. 탭을 눌러 이전에, 바로 처리

function isNumberCommaDot(evt) { 
    var theEvent = evt || window.event; 
    var key = theEvent.keyCode || theEvent.which; 

    if (key === 9) { //TAB was pressed 
     return; 
    } 

    key = String.fromCharCode(key); 
    if (key.length == 0) return; 
    var regex = /^[0-9,\9\b]*\.?[0-9]*$/; 
    if (!regex.test(key)) { 
     theEvent.returnValue = false; 
     if (theEvent.preventDefault) theEvent.preventDefault(); 
    } 
} 

건너 당신은 더 많은 정보를 here

+0

감사를 찾을 수 있습니다 .. 그 일 –

관련 문제