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

javascript - event.preventdefault() not working on change event of textbox - Stack Overflow

programmeradmin2浏览0评论

Here exactly I am trying to make my textbox to accept only numbers. I am able to detect keyCode but event.preventdefault() is not working.

plete html + javascript

<HTML>
    <HEAD>
        <script src=".7.1/jquery.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $("#textbox1").keydown(function(event) {
                    try 
                    {
                        if (event.keyCode >= 48 && event.keyCode <= 57)
                        {
                            alert("valid number");
                        }   
                        else
                        {
                            event.preventDefault();
                            alert("It's NAN");
                        }
                    }
                    catch(ex) {
                        alert('An error occurred and I need to write some code to handle this!');
                    }
                    event.preventDefault();    
                });
            });
        </script>
    </HEAD>
    <BODY>
        <FORM>
            <input type="text" id="textbox1">
        </FORM>
    </BODY>
</HTML>

here is the fiddle.

How do I achieve the same?

Here exactly I am trying to make my textbox to accept only numbers. I am able to detect keyCode but event.preventdefault() is not working.

plete html + javascript

<HTML>
    <HEAD>
        <script src="http://ajax.googleapis./ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $("#textbox1").keydown(function(event) {
                    try 
                    {
                        if (event.keyCode >= 48 && event.keyCode <= 57)
                        {
                            alert("valid number");
                        }   
                        else
                        {
                            event.preventDefault();
                            alert("It's NAN");
                        }
                    }
                    catch(ex) {
                        alert('An error occurred and I need to write some code to handle this!');
                    }
                    event.preventDefault();    
                });
            });
        </script>
    </HEAD>
    <BODY>
        <FORM>
            <input type="text" id="textbox1">
        </FORM>
    </BODY>
</HTML>

here is the fiddle.

How do I achieve the same?

Share Improve this question asked Mar 3, 2013 at 19:47 IT pplIT ppl 2,6472 gold badges41 silver badges57 bronze badges 0
Add a ment  | 

2 Answers 2

Reset to default 5

Use the keypress event to intercept the change.

Demonstration

As @dystroy said, you should change your keydown to keypress and you should delete the event.preventDefault(); near the end (the second one) to make the code work.

JSFiddle Updated

发布评论

评论列表(0)

  1. 暂无评论