0

我有以下 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(); 
            }   
        }        
    });
});​

小提琴在这里

4

2 回答 2

3

那么4.5.2呢?

你的代码没有检查它!

why不使用正则表达式?

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

只需检查比赛blur event

于 2012-04-05T13:37:49.467 回答
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();
        }
    }
});
于 2012-04-05T13:59:14.150 回答