【问题标题】:Removing formatting from formatted fields before calculation在计算之前从格式化字段中删除格式
【发布时间】:2014-07-25 21:41:10
【问题描述】:

我对 jQuery 非常缺乏经验,所以请多多包涵。当用户键入时,我有一些带有逗号、美元符号和百分号格式的数字字段。单击按钮时,将触发以下函数。我想要完成的是让这些字段自己格式化,这样我就可以进行一些计算并将结果传递给其他一些字段(我意识到这可能不是最好的方法)。否则,其他字段仅填充“NaN”。

该函数用于删除逗号和百分号,但由于某种原因不会删除包含它们的两个字段中的美元符号。

以下是使用 jQuery 插件格式化字段的两个函数:

$('.dollar').keyup(function () {
  $(this).autoNumeric('init', {aSep: ',', aSign: '$', mRound: 'u', mDec: '0'})
});

$('.percentage').keyup(function () {
  $(this).autoNumeric('init', {aSep: ',', aSign: '%', pSign: 's', mRound: 'u', mDec: '0'})
});

这是取消字段格式的函数,除其他外:

$('#resultsBtn').on('click', function(){
            $('#output .sectionBox').fadeIn()
            ,$('#resultsBtn').hide()
            ,$('#fieldI').val('70')
            ,$('[id^=field]').each(function(){$(this).val($(this).val().replace(/,/g,''))})
            ,$('.dollar').each(function(){$(this).val($(this).val().replace(/$/g,''))})
            ,$('.percentage').each(function(){$(this).val($(this).val().replace(/%/g,''))})
        });`

【问题讨论】:

    标签: jquery formatting field


    【解决方案1】:

    你的函数格式错误,你应该试试这个:

    $('#resultsBtn').on('click', function () {
        $('#output .sectionBox').fadeIn();
        $('#resultsBtn').hide();
        $('#fieldI').val('70');
        $('[id^=field]').each(function () {
            $(this).val($(this).val().replace(',', ''));
        })
        $('.dollar').each(function () {
            $(this).val($(this).val().replace('$', ''));
        });
        $('.percentage').each(function () {
            $(this).val($(this).val().replace('%', ''));
        });
    });
    

    请注意我删除的逗号和我在每个函数末尾添加的分号。 您也不需要替换中的正则表达式。

    为您准备的 jsFiddle:http://jsfiddle.net/Bvfq8/2/

    【讨论】:

    • 伙计,我希望它会更迷人!我一直在做错事。谢谢!
    猜你喜欢
    • 2017-03-10
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多