从计算中删除NaN

时间:2013-02-08 09:22:44

标签: jquery

$('.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。 基本上,当我在weight-1字段中输入一个数字时,它会在NaN字段中显示weight-3。我想摆脱这个。

提前致谢。

1 个答案:

答案 0 :(得分:1)

只需测试NaN

if (!isNaN(total)) {
    // Put it in the field...
}

更好的是,在计算前面捕获NaN结果(在parseFloatwt1上执行wt2之后),并指出相关的无效字段值用户。


重新评论:

  

如果我把上面的内容

,我看不到结果字段中的任何内容

如果您总是想要更新结果,即使输入无效,也只需使用else并在输入无效时填写您想要的结果。或者您可以使用三元运算符:

var result = the.find('.field-name-field-weight-3 input').val(
    isNaN(total) ? '' : total.toFixed(2)
);

当输入无效时,将结果字段设置为空白。但同样,我会发现哪些输入无效并让用户知道。