2012-07-13 67 views
4

我發現這個非常簡潔的代碼,只允許在文本字段中的數字字符。目前它只覆蓋數字0-9和退格和刪除。我希望它也包含十進制/句點,所以我一直在與此戰鬥,只包括鍵碼110和/或190.我無法讓它工作。任何人都可以看到我做錯了什麼?jquery - 數字只有文本字段

$(document).ready(function() { 
    $('input.numberinput').bind('keypress', function(e) { 
return (e.which!=8 && e.which!=0 && (e.which<48 || e.which>57)) || (e.which!=110) ? false : true ; 
    }); 
    }); 

的jsfiddle這裏http://jsfiddle.net/justmelat/EN8pT/

HTML

  <div class="label">Enter a number:</div> 
     <input type="text" name="txtNumber1" id="txtNumber1" value="" class="numberinput" /> 

     <div class="label">Enter a number:</div> 
     <input type="text" name="txtNumber2" id="txtNumber2" value="" class="numberinput" /> 
    </div> 
+0

爲什麼不使用''? – 2012-07-13 15:28:24

+0

@Andrew由於它是一個HTML5元素,因此在舊版瀏覽器(即IE8及以下版本,不確定IE9)中是不支持的。 – Bojangles 2012-07-13 15:30:32

+0

@JamWaffles我知道,我只問,因爲瀏覽器從未指定。 – 2012-07-13 15:31:11

回答

6

嘗試:

$(document).ready(function() { 
    $('input.numberinput').bind('keypress', function (e) { 
     return !(e.which != 8 && e.which != 0 && 
       (e.which < 48 || e.which > 57) && e.which != 46); 
    }); 
});​ 

JsFiddlehttp://jsfiddle.net/EN8pT/1/

+0

嗨,希望,這個沒有骰子。句號/小數點不起作用。我在這裏創建了一個jsfiddle:'http:// jsfiddle.net/justmelat/EN8pT /' – user1176783 2012-07-13 15:44:09

+0

回答更新。 – 2012-07-13 15:46:02

+0

工作正常!謝謝!!!!!!!!!!!!!!!! – user1176783 2012-07-13 15:48:31

0
$("#input").keydown(function(event) { 
var theEvent = event || window.event; 
var key = theEvent.keyCode || theEvent.which; 
    // Allow: backspace, delete, tab, escape, and enter 
    if (key == 46 || key == 8 || key == 9 || key == 27 || key == 13 || key == 110 || key == 190 || 
     // Allow: Ctrl+A 
     (key == 65 && theEvent.ctrlKey === true) || 
     // Allow: home, end, left, right 
     (key >= 35 && key <= 39)) { 
      // let it happen, don't do anything 
      return; 
    } 
    else { 
     // Ensure that it is a number and stop the keypress 
     if (theEvent.shiftKey || (key < 48 || key > 57) && (key < 96 || key > 105)) { 
      theEvent.preventDefault(); 
     } 

    } 
}); 

與鍵碼110和190