繁体   English   中英

使用jQuery / javascript限制价格字段输入

[英]using jQuery/javascript to restrict price field input

我在互联网上找到了以下jQuery代码,但我很快发现它有一个缺点,即它似乎不接受小数点(ASCII代码46)。

目前,我无法输入1.23之类的价格,因为该时间段被忽略,而我却得到123。

谁能发现这不起作用吗?

// Numeric only control handler
$.fn.ForceNumericOnly =
function()
{
    return this.each(function()
    {
        $(this).keydown(function(e)
        {
            var key = e.charCode || e.keyCode || 0;

            // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
            return (
                key == 8 ||
                key == 9 ||
                key == 46 ||
                (key >= 37 && key <= 40) ||
                (key >= 48 && key <= 57) ||
                (key >= 96 && key <= 105));
        })
    })
};

我正在使用这样的插件:

$(function(){
  $('#price_field').ForceNumericOnly();
});

其他用户已经几乎回答了您的问题,但是我想为您提供此链接。

http://unixpapa.com/js/key.html

在处理键盘事件并使它们跨浏览器兼容时,我发现它非常有用。

我希望这有帮助。

您应该添加键码190以接受“。”

// Numeric only control handler
$.fn.ForceNumericOnly = function() {
return this.each(function()
{
    $(this).keydown(function(e)
    {
        var key = e.charCode || e.keyCode || 0;

        // allow dot, backspace, tab, delete, arrows, numbers and keypad numbers ONLY
        return (
            key == 190 ||  
            key == 8 ||
            key == 9 ||
            key == 46 ||
            (key >= 37 && key <= 40) ||
            (key >= 48 && key <= 57) ||
            (key >= 96 && key <= 105));
    })
})
};

两个小数点都需要包含190和110。

// Numeric only control handler
$.fn.ForceNumericOnly =
function()
{
    return this.each(function()
    {
        $(this).keydown(function(e)
        {
            var key = e.charCode || e.keyCode || 0;

            // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
            return (
                key == 190 ||    //add this line. 190 is the keycode for a period
                key == 110 ||    //and this line. 110 is the keycode for a decimal
                key == 8 ||
                key == 9 ||
                key == 46 ||
                (key >= 37 && key <= 40) ||
                (key >= 48 && key <= 57) ||
                (key >= 96 && key <= 105));
        })
    })
};

只需添加即可. (代码190和110)检查:

// Numeric only control handler
$.fn.ForceNumericOnly =
function()
{
    return this.each(function()
    {
        $(this).keydown(function(e)
        {
            var key = e.charCode || e.keyCode || 0;

            // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
            return (
                key == 8 ||
                key == 9 ||
                key == 46 ||
                key == 190 ||   // normal .
                key == 110 ||   // keypad .
                (key >= 37 && key <= 40) ||
                (key >= 48 && key <= 57) ||
                (key >= 96 && key <= 105));
        })
    })
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM