Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 从计算中删除NaN_Jquery - Fatal编程技术网

Jquery 从计算中删除NaN

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。 基本上,当我在权重-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('.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)
);