1

ここでは、テキストボックスに数字のみを受け入れるようにしようとしています。keyCode は検出できますが、event.preventdefault() が機能しません。

完全な html + javascript

<HTML>
    <HEAD>
        <script src="http://ajax.googleapis.com/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>

ここにフィドルがあります。

どうすれば同じことを達成できますか?

4

2 に答える 2

5

イベントを使用しkeypressて変更をインターセプトします。

デモンストレーション

于 2013-03-03T19:49:50.443 に答える
0

@dystroyが言っ event.preventDefault();たように、コードを機能させるには、キーダウンをキープレスに変更し、最後の近く(2番目のもの)を削除する必要があります。

JSFiddleが更新されました

于 2013-03-03T20:04:05.170 に答える