最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Number validate at keypress - Stack Overflow

programmeradmin7浏览0评论

I validate the phone number using below code its working fine but i allow char at first time while user entering the values. how i can solve it. . . .

$('.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();
        }
    });
});

I validate the phone number using below code its working fine but i allow char at first time while user entering the values. how i can solve it. . . .

$('.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();
        }
    });
});
Share Improve this question edited Dec 16, 2013 at 8:38 Qantas 94 Heavy 16k31 gold badges72 silver badges88 bronze badges asked Dec 16, 2013 at 8:34 Dinesh DinazDinesh Dinaz 3131 gold badge4 silver badges13 bronze badges
Add a ment  | 

5 Answers 5

Reset to default 6

The first character is unrestricted because you have nested keypress handlers. Try this:

$('.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();
    }
});

Try

$('.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();
    }
});

Here is a function that will validate the input. It will return true if the value is a number, false otherwise. Numbers are charcode 48 - 57. This function also allows all control characters to return true. (<32)

function isNumber(evt)
{
   evt = (evt) ? evt : window.event;
   var charCode = (evt.which) ? evt.which : evt.keyCode;
   if (charCode > 32 && (charCode < 48 || charCode > 57)) {
      return false;
    }
    return true;
}

Here is a chart of the codes.

<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>

This is the simplest solution for KeyPress Number Events:

 $(document).ready(function(){ 			
    $(".Number").keypress(function(event){
        var keycode = event.which;
        if (!(keycode >= 48 && keycode <= 57)) {
            event.preventDefault();
        }
    });
 });

发布评论

评论列表(0)

  1. 暂无评论