2013-12-16 33 views
5

我驗證電話號碼使用下面的代碼,其工作正常,但我允許在用戶輸入值的第一次字符。我怎麼能解決它。 。 。 。號碼在按鍵驗證

$('.Number').keypress(function() { 
    $('.Number').keypress(function (event) { 
     var keycode; 

     keycode = event.keyCode ? event.keyCode : event.which; 

     if (!(event.shiftKey == false && (keycode == 46 || keycode == 8 || 
       keycode == 37 ||keycode == 39 || (keycode >= 48 && keycode <= 57)))) { 
      event.preventDefault(); 
     } 
    }); 
}); 

回答

2

由於嵌套keypress處理程序,所以第一個字符不受限制。試試這個:

$('.Number').keypress(function (event) { 
    var keycode = event.which; 
    if (!(event.shiftKey == false && (keycode == 46 || keycode == 8 || keycode == 37 || keycode == 39 || (keycode >= 48 && keycode <= 57)))) { 
     event.preventDefault(); 
    } 
}); 
+0

我想'VAR鍵碼= event.which;'會做 –

+0

謝謝你的朋友。 。 。 。 –

3

嘗試

$('.Number').keyup(function (event) { 
    var keycode = event.which; 
    if (!(event.shiftKey == false && (keycode == 46 || keycode == 8 || keycode == 37 || keycode == 39 || (keycode >= 48 && keycode <= 57)))) { 
     event.preventDefault(); 
    } 
}); 
0
<html> 
<head> 
<title>number validation</title> 
<script> 
    function checkNumber(check) 
    { 
     var a = document.getElementById("txt_contact_no").value; 
     //var x=check.which; 
     //var x = a.charCode; 
     var x = a.keyCode; 
     if(!(a >= 48 || a <= 57)) 
     { 
      alert("enter only numbers"); 
      return false; 
     }  
     else if(a=="" || a==null) 
     { 
      alert("field is blank"); 
      return false; 
     } 
// if no is more then the value 
     /*else if (a.length <= 9) 
     { 
      alert("enter minimum 10 characters"); 
      return false; 
     }*/ 
     alert("done"); 
     return true;   
    } 
</script> 
</script> 
</head> 
<body> 
<table> 
<form name=form1 method=post action="#"> 
    <tr> 
     <td> 
     <b>Subjects</b><input type="text" name="contact_no" id="txt_contact_no" onblur="checkNumber(this)"> 
     </td> 
    </tr> 
    <tr> 
     <td><p id="p1"></p></td> 
    </tr> 
</form> 
</table> 
</body>