2012-02-16 42 views
42

Tôi gặp sự cố với câu lệnh if. Tôi muốn thiết num tới 0 trên NaN:jQuery Nếu giá trị là NaN

$('input').keyup(function() { 

var tal = $(this).val(); 
var num = $(this).data('boks'); 
if(isNaN(tal)) { 
var tal = 0; 
} 
}); 
+0

Sau đó làm đi. Hiện tại bạn đang đặt 'tal' thành' 0'. Thay thế 'tal' bằng' num'. –

+0

Điên có bao nhiêu lượt xem câu hỏi này có .. –

+0

Đối với tất cả người dùng ... xem http://stackoverflow.com/questions/8012807/isnumeric-vs-isnan tức là USE $ .isNumeric() !!! –

Trả lời

99

Bạn phải gán giá trị trở lại $(this):

$('input').keyup(function() { 

var tal = $(this).val(); 
var num = $(this).data('boks'); 
if(isNaN(tal)) { 
var tal = 0; 
} 
$(this).data('boks', tal); 
}); 

độc đáo bằng văn bản:

$('input').keyup(function() { 
    var eThis = $(this); 
    var eVal = (isNaN(eThis.val())) ? 0 : eThis.val(); 
    eThis.data('boks', eVal); 
}); 
+0

eThis.val() là một chuỗi số 0 là một số. Ngoài ra, bạn đang sử dụng isNaN toàn cầu khác với thực hành tốt hơn Number.isNaN (và một lớp lót tương ứng polyfil). https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN – fullstacklife

28

Nếu bạn muốn thay thế NaN với 0, chỉ cần viết điều này:

var tal = parseInt($(this).val()) || 0; 
Các vấn đề liên quan