Jquery 从计算中删除NaN
我有这段代码。我想摆脱NaN。 基本上,当我在权重-1字段中输入一个数字时,它会在权重-3字段中显示Jquery 从计算中删除NaN,jquery,Jquery,我有这段代码。我想摆脱NaN。 基本上,当我在权重-1字段中输入一个数字时,它会在权重-3字段中显示NaN。我想摆脱这个 提前感谢。只需测试一下NaN: $('.field-name-field-weight-1 input').change(function(){ var wt1 = $(this).val(); var the = $(this).parent().parent().parent().parent(); var wt2 = the.find('.fie
NaN
。我想摆脱这个
提前感谢。只需测试一下
NaN
:
$('.field-name-field-weight-1 input').change(function(){
var wt1 = $(this).val();
var the = $(this).parent().parent().parent().parent();
var wt2 = the.find('.field-name-field-weight-2 input').val();
var total = parseFloat(wt1) - parseFloat(wt2);
var result = the.find('.field-name-field-weight-3 input').val(total.toFixed(2));
});
$('.field-name-field-weight-2 input').change(function(){
var wt2 = $(this).val();
var the = $(this).parent().parent().parent().parent();
var wt1 = the.find('.field-name-field-weight-1 input').val();
var total = parseFloat(wt1) - parseFloat(wt2);
var result = the.find('.field-name-field-weight-3 input').val(total.toFixed(2));
});
}
};
})(jQuery);
更好的是,在计算的早期捕捉NaN
结果(在wt1
和wt2
上执行parseFloat
之后),并向用户指出相关的无效字段值
请回复您的评论:
如果我把上面的内容放在结果字段中,我就看不到任何东西了 如果您总是想更新结果,即使您有无效的输入,也只需使用
else
并在输入无效时填写您想要的结果。也可以使用三元运算符:
if (!isNaN(total)) {
// Put it in the field...
}
这将在输入无效时将结果字段设置为空白。但同样,我会发现哪个输入无效并让用户知道。而不是
parent().parent().parent().parent().parent()
您可以使用parents()
或closest(),所以我把它放在结果栏里,如果我放在上面,我就什么也看不见了。我试着把它放在上面,但现在它没有给我看。但是,如果我在权重-1或权重-2字段中更改输入,它不会显示适当的结果。var total=parseFloat(grosswt).val()| |“0”-parseFloat(tarewt).val()| |“0”@soniajain:然后只要在结果字段中添加一个else
子句,当输入无效时,就可以在结果字段中添加所需的内容。关键是不能将输入解析为数字,因此没有结果。
var result = the.find('.field-name-field-weight-3 input').val(
isNaN(total) ? '' : total.toFixed(2)
);