2012-04-05 43 views
0

文本框,我有以下jQuery的功能,使文本框只接受十進制數,但問題是,它沒有接受.,所以它可以作爲唯一的整數文本框,十進制數只使用jQuery

我不想使用任何插件

這裏是jQuery函數:

$(document).ready(function() { 
    $("#textbox1").keydown(function(event) 
    { 
     if (event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || 
     (event.keyCode == 65 && event.ctrlKey === true)) 
     { 
      return; 
     } 
     else if(event.keyCode == 46) 
     { 
      return; 
     } 
     else 
     { 
      if ((event.keyCode < 48 || event.keyCode > 57) && 
       (event.keyCode < 96 || event.keyCode > 105)) 
      { 
       event.preventDefault(); 
      } 
     }   
    }); 
});​ 

Fiddle is here

+0

這裏的細節文章與演示http://codepedia.info/jquery-allow-numbers-decimal-only-in-textbox-numeric-input/ – 2017-01-12 06:19:02

回答

2
$("#textbox1").keydown(function(e){ 
    var key = e.which; 

    // backspace, tab, left arrow, up arrow, right arrow, down arrow, delete, numpad decimal pt, period, enter 
    if (key != 8 && key != 9 && key != 37 && key != 38 && key != 39 && key != 40 && key != 46 && key != 110 && key != 190 && key != 13){ 
     if (key < 48){ 
      e.preventDefault(); 
     } 
     else if (key > 57 && key < 96){ 
      e.preventDefault(); 
     } 
     else if (key > 105) { 
      e.preventDefault(); 
     } 
    } 
}); 
3

和什麼有關4.5.2

你的代碼不檢查它!

why不使用正則表達式?

[0-9]+(\.[0-9][0-9]?)? 

只是檢查比賽的時候blurevent

+0

+1爲您糾正,我正在努力...... :) – 2012-04-05 14:40:56