【问题标题】:Decimal limit jQuery [duplicate]十进制限制jQuery [重复]
【发布时间】:2013-08-09 05:08:56
【问题描述】:

有谁知道我怎样才能得到以下内容以将小数限制为 2 位?还有一个问题是当两个字段中没有值时它显示 NaN (我宁愿它什么都不显示)。谁能帮忙解决这些问题?

HTML

<td class="grade">
    <input type="text" value="28" class="numerator" /> / <input type="text" value="30" class="denominator" />
    <div class="result"></div>
</td>

jQuery

function update($ele) {
    var n = Number($ele.find('.numerator')[0].value);
    var d = Number($ele.find('.denominator')[0].value);
    $ele.find('.result').text(n / d * 100);
}

$('.grade').each(function() {
    update($(this));
});

$('.grade input').on('keyup', function() {
    update($(this).closest('.grade'));
});

【问题讨论】:

    标签: jquery forms


    【解决方案1】:

    fiddle

    function update($ele) {
        var n = Number($ele.find('.numerator')[0].value);
        var d = Number($ele.find('.denominator')[0].value);
        /* this works but is slightly more verbose (and maybe a bit slower) */
        var val = (n / d * 100);
        $ele.find('.result').text(( isNaN(val) || ! isFinite(val) ) ? '' : val.toFixed(2));
        /* This might be faster, and also make everything a bit more succinct * /
        var val = d !== 0 ? n / d * 100 : NaN;
        $ele.find('.result').text(isNaN(val) ? '' : val.toFixed(2));
        /* */
    }
    

    【讨论】:

    • 完美!感谢您的帮助。
    • 除了我原来的要求之外,是否可以停止显示“无穷大”?当您在 .numerator 字段中输入一个数字并将 .denominator 留空时,它会显示单词“infinity” - 我宁愿它什么也不显示。
    • 更新了Infinity
    • 非常感谢您的帮助:)
    • @kalley 正如你所说,“它也会让一切变得更简洁”
    猜你喜欢
    • 1970-01-01
    • 2011-03-13
    • 2017-03-29
    • 2013-06-13
    • 2019-01-27
    • 2017-09-28
    • 2017-12-30
    • 1970-01-01
    • 2016-08-12
    相关资源
    最近更新 更多