2012-02-16 15 views
42

Mam pewne problemy z instrukcją if. Chcę ustawić num 0 z NaN:jQuery Jeśli wartością jest NaN

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

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

Następnie Zrób to. Obecnie ustawiasz 'tal' na' 0'. Zamień 'tal' na' num'. –

+0

Szalony, ile wyświetleń to pytanie dostałem .. –

+0

Dla wszystkich użytkowników ... zobacz http://stackoverflow.com/questions/8012807/isnumeric-vs-isnan tj. USE $ .isNumeric() !!! –

Odpowiedz

99

Musisz przypisać wartość z powrotem do $(this):

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

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

ładnie napisane:

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

eThis.val() jest ciągiem, którym 0 jest liczba. Używasz również globalnej isNa, która różni się od lepszej praktyki Number.isNaN (i jej 1 liniowej polyfil). https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN – fullstacklife

28

Jeśli chcesz wymienić NaN z 0, po prostu napisz to:

var tal = parseInt($(this).val()) || 0; 
Powiązane problemy