2010-04-13 3 views
1

Я пытаюсь понять, почему мой код javascript не ограничивает числовой ввод. Вот код ниже:Ограничение числового ввода 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(); 
        } 
       } 
      })(); 

ответ

0

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

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

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

Смежные вопросы