我已禁用输入字段,结果如下(" Kiekis" *" Kaina" =" Suma"),但导致很多情况显示超过2位数(如3 * 2.93)即使我使用JS toFixed(2)函数。
$('#quantity, #price').on('keyup change', function() {
$('#total').val($('#quantity').val() * $('#price').val()).toFixed(2);
});
这是我在JSFiddle中的所有代码: https://jsfiddle.net/w5qz5exe/
提前感谢您的帮助! :)
答案 0 :(得分:1)
您在输入字段上附加事件,然后才将它们加载到DOM上。所以,在父母中附加事件:
同样toFixed
应该在val
内,因为在val函数的参数中传递的任何值都被设置为该元素的值。所以你需要在这个函数中发送格式化的值:
示例:
$('div.row').on('keyup change', '#quantity, #price ', function() {
$('#total').val(($('#quantity').val() * $('#price').val()).toFixed(2));
});
更新了小提琴 - link
答案 1 :(得分:1)
您正在为页面加载时的'keyup change'添加一个事件处理程序,但是您添加到DOM的新元素在页面加载时不在页面上。在创建之后,您需要将该处理程序添加到新元素中。
您可以将'keyup change'处理程序放在函数中,然后在添加新元素时调用该函数。
答案 2 :(得分:0)
这样做:将$('#total')的值设置为blah,然后将.toFixed(2)设置为jquery对象(因为.val()返回$('#total'))
$('#total').val(blah).toFixed(2)
这样做:将$('#total')的值设置为blah,最多2位小数:
$('#total').val(blah.toFixed(2))
第二个是你真正想要的