model.qty = (parseInt($('#amendOrderQty').val()) == NaN) ?
0 :
parseInt($('#amendOrderQty').val());
// model.qty === NaN when #amendOrderQty is left blank
当字段留空时,我试图将值设置为0。为什么这不起作用?
答案 0 :(得分:3)
您不能将比较运算符与NaN
一起使用,它将始终返回false
。
使用isNaN()
代替
var qty = parseInt($('#amendOrderQty').val());
model.qty = isNaN(qty) ? 0 : qty;
答案 1 :(得分:1)
您无法直接将某些内容与NaN
进行比较,因为
NaN === NaN
总是返回false。
鉴于此,您应该替换
parseInt($('#amendOrderQty').val()) == NaN
与
isNan(parseInt($('#amendOrderQty').val()))
你的代码,重构和修复,应该是这样的:
var orderQtyVal = parseInt($('#amendOrderQty').val());
model.qty = isNaN(orderQtyVal) ? 0 : orderQtyVal;
答案 2 :(得分:1)
改为使用“isFinite”。
var x = parseInt($('#amendOrderQty').val();
model.qty = isFinite(x) ? x : 0;