Ограничение проблемы ввода числового JavaScript - PullRequest
1 голос
/ 13 апреля 2010

Я пытаюсь выяснить, почему мой код JavaScript не ограничивает числовой ввод. Вот код ниже:

(function(){
                if(window.addEventListener) window.addEventListener("load",init,false);
                else if(window.attachEvent) window.attachEvent("onload",init);

                function init() {
                    var keytest = document.getElementById("keytest");

                    function numericinput(event) {
                        var e = event || window.event;
                        var key = e.charcode || e.keyCode;  
                        var regex =/^\d+\.?\d{4}$/;
                        key = String.fromCharCode(key);     

                        if (!regex.test(key)) {
                                alert("something");

                            //if(e.preventDefault) e.preventDefault();
                            //if(e.returnValue) e.returnValue = false;
                            //return false;
                        }
                        else { //return true; 
                            alert("something else");
                         }                                      
                    }

                    if(keytest.addEventListener) keytest.addEventListener("keypress",numericinput,false);
                    else {
                        keytest.onkeypress = numericinput();
                    }
                }
            })();

1 Ответ

0 голосов
/ 13 апреля 2010

Вы используете e.charcode, но оно должно быть e.charCode

Ваше регулярное выражение тоже немного отключено, и вам придется иметь дело с пробелами и т. Д.

Вы также можете просто изучить сам код клавиши, см. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...