Je fais une simple comparaison de nombres sur l'événement keyUp d'un champ de saisie. Pour une raison quelconque, je n'obtiens pas le résultat escompté, et je n'arrive pas à comprendre pourquoi. Ce qui devrait arriver est que si le nombre entré par l'utilisateur est plus grand que celui stocké dans l'attribut html, l'arrière-plan devrait virer au rouge, sinon il reste blanc. En entrant simplement '9', l'arrière-plan deviendra rouge. ??javascript renvoie le résultat inattendu
var admin = $('input[name="diskStorage"]').attr('data-adminstorage'); // 2097152000
$('#new-user input[name="diskStorage"]').keyup(function(){
if(admin < $(this).val())
$(this).css('background','red');
else
$(this).css('background','white');
});
Quand je déboguer ces valeurs, if(2097152000 < 549)
est vrai retournaient. Voici le html, en cas qui fait toute la différence:
<form action="administrate.php" method="post" id="new-user">
<table><tbody><tr>
...
</tr><tr>
<td>Disk Storage Limit:</td>
<td>
<input type="text" data-adminStorage="2097152000" name="diskStorage" value="" /> megaBytes<br />
<span id="info"></span></td>
...
</tr></tbody></table>
Ici, il est en direct: http://jsfiddle.net/JMC_Creative/dqAJj/2/
Unary '+' est un meilleur moyen que 'parseInt (str, 10)' à mon avis. Exemple: '+ str' au lieu de' parseInt (str, 10) '. – Reid
@Reid En quoi est-ce "meilleur"? –
Ce n'est pas vrai. ''2097152000' <'549'' est parfaitement valide et donne' true'. –