2012-02-16 20 views
42

Tengo problemas con una instrucción if. Quiero configurar num a 0 de NaN:jQuery Si el valor es NaN

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

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

Entonces hazlo. Actualmente estás configurando 'tal' a' 0'. Sustituye 'tal' con' num'. –

+0

Crazy cuántas vistas obtuvo esta pregunta. –

+0

Para todos los usuarios ... ver http://stackoverflow.com/questions/8012807/isnumeric-vs-isnan, es decir, USE $ .isNumeric() !!! –

Respuesta

99

Tiene que asignar el valor a $(this):

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

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

muy bien escrita:

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

eThis.val() es una Cadena, el 0 es un Número. También está utilizando el isNaN global que es diferente de la práctica mejor Number.isNaN (y su respectivo 1 revestimiento polyfil). https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN – fullstacklife

28

Si desea reemplazar el NaN con 0, acaba de escribir esto:

var tal = parseInt($(this).val()) || 0; 
Cuestiones relacionadas