Javascript/Jquery 将输入字段限制为一位小数和数字

Posted

技术标签:

【中文标题】Javascript/Jquery 将输入字段限制为一位小数和数字【英文标题】:Javascript/Jquery to restrict input field to one decimal and numbers only 【发布时间】:2018-04-11 17:28:08 【问题描述】:

下面是我到目前为止的内容,问题是它适用于输入和粘贴,但如果你再次粘贴,它看起来只适用于从粘贴操作复制的数据,它没有考虑到已经存在的内容在那个领域。

    $('#val00').on('input', function()
        this.value = this.value
        .replace(/[^\d.]/g, '')             // numbers and decimals only
        .replace(/(\..*)\./g, '$1')         // decimal can't exist more than once
        .replace(/(\.[\d]2)./g, '$1');    // not more than 2 digits after decimal
        console.log("ON INPUT "+mynum);
        mynum++;
    )

    $('#val00').on('paste', function()
        this.value = this.value
        .replace(/[^\d.]/g, '')             // numbers and decimals only
        .replace(/(\..*)\./g, '$1')         // decimal can't exist more than once
        .replace(/(\.[\d]2)./g, '$1');    // not more than 2 digits after decimal
        console.log("ON PASTE "+mynum);
        mynum++;
    )

【问题讨论】:

【参考方案1】:

我可能过早地发布了这个问题,而没有花足够的时间进行调试。只是想我分享我的解决方案。

    $('#val00').on('paste', function()

        if (this.value !="") 
            this.value = ""
        else
        this.value = this.value
        .replace(/[^\d.]/g, '')             // numbers and decimals only
        .replace(/(\..*)\./g, '$1')         // decimal can't exist more than once
        .replace(/(\.[\d]2)./g, '$1');    // not more than 2 digits after decimal
        console.log("ON INPUT "+mynum);
        mynum++;
        
    )

【讨论】:

当我在测试时,这似乎根本不起作用——我似乎能够不受阻碍地将任何我喜欢的东西粘贴到输入字段中。 jsfiddle

以上是关于Javascript/Jquery 将输入字段限制为一位小数和数字的主要内容,如果未能解决你的问题,请参考以下文章

将文本字段更新为 JSON 字符串 - Javascript/JQuery [重复]

一旦用户输入值,使用 javascript/jquery 自动更新具有相同 ID 的输入字段

JavaScript jquery - 专注于页面上的第一个文本输入字段

有没有办法使用 javascript/Jquery 将未提交的输入字段的值属性作为 URL 的参数传递?

Javascript / jQuery Windows 8 屏幕键盘

将文本输入到另一个输入字段时清除输入字段