十进制数字只使用jQuery的文本框

时间:2012-04-05 13:13:28

标签: 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

2 个答案:

答案 0 :(得分:3)

以及4.5.2怎么办?

你的代码没有检查它!

why不使用正则表达式?

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

只需在blur event

时查看匹配项

答案 1 :(得分: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();
        }
    }
});