-1
$('.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ます。これを取り除きたい。

前もって感謝します。

4

1 に答える 1

1

次のことをテストするだけですNaN

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

さらに良いのは、計算の早い段階で ( onとNaNを実行した直後に) 結果をキャッチし、関連する無効なフィールド値をユーザーに指摘することです。parseFloatwt1wt2


あなたのコメントについて:

上記を入力すると、結果フィールド以外に何も表示されません

無効な入力がある場合でも、常に結果を更新したい場合は、 を使用してelse、入力が無効な場合に必要な結果を入力します。または、三項演算子を使用できます。

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

入力が無効な場合、結果フィールドが空白に設定されます。しかし、繰り返しますが、どの入力が無効であるかをキャッチして、ユーザーに知らせます。

于 2013-02-08T09:25:30.337 に答える