J’essaie de comparer les valeurs de deux champs d’entrée avec jQuery. Cependant, cela semble correct, mais il n’alarme pas lorsque l’une des valeurs est plus grande.
Enter the key:
Plaintext:
JavaScript:
$(document).ready(function() { // Count key $("#q17").keyup(function() { $('#charsLeft').val($(this).val().length); }); // Count plaintext $("#q18").keyup(function() { $('#charsLeft2').val($(this).val().length); }); // Compare key|plaintext if ($('#charsLeft').val() < $('#charsLeft2').val()) { alert('Key is shorter than the plaintext'); } });
J’essaie de comparer les valeurs des deux champs d’entrée ( charsLeft
et charsLeft2
). Qu’est-ce que j’oublie ici? Voici un violon: http://jsfiddle.net/2mgzn4pL/
Vous comparez des chaînes, pas des entiers. Vous pouvez utiliser parseInt()
pour les convertir. Essaye ça:
if (parseInt($('#charsLeft').val(), 10) < parseInt($('#charsLeft2').val(), 10)) { alert('Key is shorter than the plaintext'); }
Violon mis à jour
.val()
renvoie une chaîne. Vous devriez utiliser parseInt
ou parseFloat
.
Il y a deux problèmes avec votre code:
.val()
non des longueurs de chaîne Pour le premier problème, comparez les longueurs de chaîne de la manière suivante: $('#charsLeft').val().length < $('#charsLeft2').val().length
.
Pour le deuxième problème, vous devez placer votre code de comparaison dans la fonction de gestionnaire d'événements de clic d'un bouton ou quelque chose de ce type. Une autre option consiste à utiliser l'événement focusout
de la deuxième entrée et à associer un gestionnaire d'événements avec .focusout()
.