当#g7
是空的,parseFloat返回一个空字符串,这样的加法运算,在NaN
结果。此外,您不需要所有这些事件,事实上,所有这些事件都意味着您的功能每按键一次就会触发多次。 keyup
事件应该足够了,除非该输入字段在外部更新,在这种情况下,您也可以使用change
事件。尽管如此,如果您正在进行外部更新,我会优先选择$('#g7').trigger('keyup');
来手动触发事件来强制执行更新。
尝试为您的jQuery的代码,它似乎很好地工作:
$(document).ready(function() {
$("#g7").on("keyup", function() {
var g6 =$('#g6').text();
var g7 =$('#g7').val() || 0;
var g8 =$('#g8').text();
var noCommasg6 = $('#g6').text().replace(/,/g, ''),
asANumber = +noCommasg6;
var sum=parseFloat(noCommasg6)+parseFloat(g7);
if (!isNaN(sum))
{
$("#g8").text(sum);
$('#g8').number(true, 2);
}
});
});
一些其他的事情需要注意:
$('#g8').number(true, 2);
错误出与消息$(...).number is not a function
- 您可能要通过将HTML
input type="..."
更改为number
(而不是text
)来限制可进入#g7
的值,以便字母字符不会蠕变
将代码添加到OP而不仅仅是一个外部链接..用于演示使用'''' – guradio
问题不在于'.on()',它与您的事件中的代码处理程序。 – nnnnnn