model.qty = (parseInt($('#amendOrderQty').val()) == NaN) ?
0 :
parseInt($('#amendOrderQty').val());
// model.qty === NaN when #amendOrderQty is left blank
フィールドを空白のままにすると、値0を設定しようとしています。なぜこれは機能しませんか?なぜNaNが返されますか?
model.qty = (parseInt($('#amendOrderQty').val()) == NaN) ?
0 :
parseInt($('#amendOrderQty').val());
// model.qty === NaN when #amendOrderQty is left blank
フィールドを空白のままにすると、値0を設定しようとしています。なぜこれは機能しませんか?なぜNaNが返されますか?
"isFin ite "の代わりに。
NaN
との比較演算子は使用できません。常に戻り値false
です。
使用isNaN()
代わり
var qty = parseInt($('#amendOrderQty').val());
model.qty = isNaN(qty) ? 0 : qty;
NaN === NaN
は常にfalseを返すので、あなたが直接NaN
に何かを比較することはできません。これを踏まえて
、あなたがリファクタリングと固定し、
isNan(parseInt($('#amendOrderQty').val()))
あなたのコードで
parseInt($('#amendOrderQty').val()) == NaN
を交換する必要があり、このようなものになります。
var orderQtyVal = parseInt($('#amendOrderQty').val());
model.qty = isNaN(orderQtyVal) ? 0 : orderQtyVal;
おそらく、MDNが「isNaN()」を壊れている(非数値の文字列の場合)とマークしていると考えるとよいでしょう:) +1 – Phil