限制为数值而不是整数值

时间:2014-09-26 10:52:33

标签: javascript jquery html

如何将输入字段限制为数值而不是整数值?

<input type="text" class="numericOnly">

JQ

$(".numericOnly").keypress(function (e) {
    if (String.fromCharCode(e.keyCode).match(/[^0-9]/g)) return false;
});

3 个答案:

答案 0 :(得分:1)

试试这个

$(".numericOnly").keypress(function(e) {

    var code = e.which;

    if(($(this).val().indexOf(".") == -1 && code == 46) || (code >= 48 && code <= 57) || (code == 51) || (code == 8) || (code >= 37 && code <= 40))
    {
        return true;
    }       

    return false;
})

.bind("paste",function(e) {

      e.preventDefault();
}); 

答案 1 :(得分:0)

如果要允许小数点,请将它们添加到您正在使用的字符类中。例如。 /[^0-9.]/g如果您的语言区域中的小数点是.,或/[^0-9,]/g,如果它是,(在某些位置),则为.0.0.0.1

当然,这会让某人输入e.which,您需要对该字段进行全价值检查以及按键级别检查。

另外,请记住,除了键入(例如,粘贴)之外,有很多方法可以进入字段,因此(再次)在某个阶段进行全价值检查将是一个好主意。


附注:使用e.keyCode,而不是e.which。 jQuery normalizes the event object,在不能原生设置的浏览器上设置{{1}}。

答案 2 :(得分:-2)

带点

获取此js文件

http://thefitties.co.uk/js/plugins/jquery-numeric.js

在HTML中

<input class="numeric" type="text">
脚本中的

$("input.numeric").numeric()

没有做到

$(document).ready(function() {
    $("#txtboxToFilter").keydown(function (e) {
        // Allow: backspace, delete, tab, escape, enter and .
        if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
             // Allow: Ctrl+A
            (e.keyCode == 65 && e.ctrlKey === true) || 
             // Allow: home, end, left, right
            (e.keyCode >= 35 && e.keyCode <= 39)) {
                 // let it happen, don't do anything
                 return;
        }
        // Ensure that it is a number and stop the keypress
        if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
            e.preventDefault();
        }
    });
});

OR

http://jsfiddle.net/lesson8/HkEuf/1/