首页 > 解决方案 > 如何在委托中使用 jQuery 数字格式

问题描述

我使用插件jQuery Number Format来动态格式化 "," decimal 和 "." 的数字。格式。这适用于正常事件。我遇到的问题是动态添加的 HTML,在其中您使用委托来触发 jQuery。

普通的

$('input.number').number( true, 2 );

如果我使用运行时存在的另一个 ID,例如#body,调用它的正确方法是什么?我尝试了类似的东西

$("#body").on("keyup", "input#number", function(event) {
    $(this).number(true,2,',','.');
 });

但它在小数点右侧的数字有问题。例如,如果我尝试输入“450,45”,则永远不会使用最后一个百位,我输入的其他数字将放在 10 位。

有没有合适的方法来做到这一点?

标签: jquery

解决方案


据我了解,输入应始终类似于123.456 ,第四个参数不是输入的另一个可能的小数分隔符,而是输出的千位分隔符。

$("#body").on("change", "input#number", function(event) {
    // replace , by .
    var value = $(this).val().replace(",",".");
    // update input value 
    $(this).val($.number(value,2,',','.'));
});

最好的方法是强制用户通过验证提供有效输入。然后,您将避免必须找到这样的变通方法来格式化您的数字。这里有更多信息:https ://jqueryvalidation.org/number-method/


推荐阅读