2014-01-09 2 views
2

는 그것을 해결하는 방법 :자동 IP 입력을 처리 하시겠습니까?

<input id="ip" onkeyup="IP();"> 

이 스크립트입니다

function IP(){ 
       document.getElementById('IP').value = document.getElementById('IP').value.replace(/[^0-9 .]/g,""); 
       var ip = document.getElementById('IP').value; 
       ipparts= new Array(); 
       ipparts = ip.split('.'); 
       L=((ipparts.length)-1);      
       if(L<=2){ 
        if (ipparts[L]>=26 && ipparts[L]<=99 || ipparts[L]>=100 &&ipparts[L]<=255 && dot==0){ 
         document.getElementById('IP').value +='.'; 

        } 
       } 
      } 

나는 사용자가 점 넣어 그것을 무시하면 스크립트가 자동으로 점을 넣을 때 필요합니다.

답변

0

누른 키가 점인지 아닌지 확인할 수 있습니다. 또한 키를 놓을 때 keyydown이 실행되는 동안 keydown이 실행되기 때문에 keyup이 아닌 keydown을 사용해야합니다. 당신의 자바 스크립트

var ipElement = document.querySelector('input[name=ip]'); 
ipElement.addEventListener('keydown', function(evt) { 
    // . = 190 
    if(evt.keyCode == 190) { 
     // Validate the rest of the IP 
     return false; 
    } 
    else { 
     // Check if the user has entered 3 digits or pressed space or something 

    } 
}); 
+1

'. = 190 ASCII에서 --- 심지어 닫지 http://www.asciitable.com/. 그것은 ASCII에서'dec 46'입니다 – zerkms

+0

왜 나는 그것이 190이라고 느꼈습니까? – Achrome

+0

스크립트에 키 코드를 보내는 방법은 무엇입니까? – Maysam

0

에서

<input name="ip" /> 

그리고이 문서를 IP validation

여기에 그가 사용하고있다 jqueryvalidator.js을 참조하여 예와 함께 설명했다.

$.validator.addMethod('IP4Checker', function(value) { 
     var ip = "^(?:(?:25[0-5]2[0-4][0-9][01]?[0-9][0-9]?)\.){3}" + 
      "(?:25[0-5]2[0-4][0-9][01]?[0-9][0-9]?)$"; 
      return value.match(ip); 
     }, 'Invalid IP address'); 

     $('#form1').validate({ 
      rules: { 
       ip: { 
        required: true, 
        IP4Checker: true 
       } 
      } 
     }); 

    }); 
관련 문제