首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >currency jQuery的屏蔽输入

currency jQuery的屏蔽输入
EN

Stack Overflow用户
提问于 2011-09-09 17:03:04
回答 4查看 102.7K关注 0票数 17

在我的web应用程序中,我有一个名为" budget“的输入域,用户可以在其中输入项目的建议预算。我需要创建一个屏蔽输入,以便在用户键入输入字段时自动将输入的金额转换为以下格式:

1000

10000

100000

我已经在互联网上找遍了,但似乎没有找到必要的。有没有人能给我推荐一个合适的插件,或者给我一个定制的解决方案?

提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-09 17:06:42

尝试以下任意一种:

http://plugins.jquery.com/tag/currency/

这些文件可能还包含您正在寻找的内容:

http://plugins.jquery.com/tag/mask/

票数 17
EN

Stack Overflow用户

发布于 2015-04-17 23:32:27

我使用以下代码在不使用额外插件的情况下创建货币格式:

代码语言:javascript
复制
$('input.money-bank').on('keydown',function(e){    
    // tab, esc, enter
    if ($.inArray(e.keyCode, [9, 27, 13]) !== -1 ||
        // Ctrl+A
        (e.keyCode == 65 && e.ctrlKey === true) || 
        // home, end, left, right, down, up
        (e.keyCode >= 35 && e.keyCode <= 40)) {
        return;
    }

    e.preventDefault();

    // backspace & del
    if($.inArray(e.keyCode,[8,46]) !== -1){
        $(this).val('');
        return;
    }

    var a = ["a","b","c","d","e","f","g","h","i","`"];
    var n = ["1","2","3","4","5","6","7","8","9","0"];

    var value = $(this).val();
    var clean = value.replace(/\./g,'').replace(/,/g,'').replace(/^0+/, '');   

    var charCode = String.fromCharCode(e.keyCode);
    var p = $.inArray(charCode,a);

    if(p !== -1)
    {
        value = clean + n[p];

        if(value.length == 2) value = '0' + value;
        if(value.length == 1) value = '00' + value;

        var formatted = '';
        for(var i=0;i<value.length;i++)
        {
            var sep = '';
            if(i == 2) sep = ',';
            if(i > 3 && (i+1) % 3 == 0) sep = '.';
            formatted = value.substring(value.length-1-i,value.length-i) + sep + formatted;
        }

        $(this).val(formatted);
    }    

    return;

});

JSFiddle:https://jsfiddle.net/gt2Ly5rt/6/

使用此脚本,用户将只输入数字,脚本将自动放置小数和千位分隔符(它被硬编码为BRL格式,但您可以自定义它)。

例如,如果用户键入:

  • "1",它将显示:"0,01"
  • "12",它将显示:"0,12"
  • "123",它将显示:"1,23"
  • "123456",它将显示:"1.234,56"

希望这能帮助到别人。

票数 9
EN

Stack Overflow用户

发布于 2016-01-22 14:14:04

只使用Javascript的简单解决方案。

代码语言:javascript
复制
String.prototype.reverse = function () {
        return this.split("").reverse().join("");
    }

    function reformatText(input) {        
        var x = input.value;
        x = x.replace(/,/g, ""); // Strip out all commas
        x = x.reverse();
        x = x.replace(/.../g, function (e) {
            return e + ",";
        }); // Insert new commas
        x = x.reverse();
        x = x.replace(/^,/, ""); // Remove leading comma
        input.value = x;
    }
代码语言:javascript
复制
.currencyinput {
  border-color: #98969a;
    border-style: solid;
    border-width: 0.5px;
    display: inline-block;
}
  

.currencyinput input {   
    border-style: solid solid solid none;
    border-width: 0 0 0 thin;
}
代码语言:javascript
复制
<span class="currencyinput">$<input type="text" onkeyup="reformatText(this)" name="currency"></span>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7359341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档