十进制限制jQuery [重复]

Posted

技术标签:

【中文标题】十进制限制jQuery [重复]【英文标题】:Decimal limit jQuery [duplicate] 【发布时间】: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'));
);

【问题讨论】:

【参考方案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 正如你所说,“它也会让一切变得更简洁”

以上是关于十进制限制jQuery [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 JavaScript/jQuery 从输入类型“文件”中获取二进制图像数据,以便在 WebMatrix 中使用 AJAX 进行图片预览 [重复]

数字仅输入数字[重复]

BZOJ 后缀自动机四·重复旋律7

hihocoder #1457 : 后缀自动机四·重复旋律7

Java 随心笔记2

如何将我的应用程序限制为仅适用于 iPhone [重复]