Comment sélectionner vide entrées (valeur=“”) à l'aide de jQuery
Comment puis-je vérifier pour vider des valeurs de (required
) les champs d'entrée dans une section, puis ajouter une classe sur un événement, à l'aide de jQuery? Jusqu'à présent, j'ai essayé:
jQuery("#sender_container input.required").val("").addClass("error");
Mais qui semble ENSEMBLE la valeur, plutôt que de les vérifier. Des idées?
Vous devez vous connecter pour publier un commentaire.
Pourquoi vous devez utiliser
filter
et pas[value=""]
vous pouvez le voir dans cette DÉMOLa raison en est: sélecteur d'attribut vérifier l'état initial de l'élément, et non pas à l'état actuel. (notez que vous pouvez changer le "initiale" de l'état avec la
attr
, mais c'est une mauvaise pratique, vous devez toujours utiliserprop
)Donc, si vous changez la valeur d'entrée, la valeur actuelle de ne pas l'effet de l'attribut sélecteur. pas sage...
:)
Notes:
.val()
retourne la valeur de l'élément de formulaire, et rompt le jQuery de la chaîne,$('selector').val().addClass('foo')
Erreur, la valeur de retour est une chaîne de caractères\ nombre.val(valueToSet)
jeux de la valeur de l'élément de formulaire et de ne pas briser le jQuery de la chaîne.$('selector').val("some value").addClass('foo')
- Valide, la valeur retournée est un jQueryDÉMO
Vous pouvez essayer ceci:
DÉMO
Note: Cette réponse ne doit pas être utilisé, et la seule raison pour laquelle il n'a pas été supprimé, est de sorte qu'il peut être appris.
:not[value...]
vérifier l'état actuel, $thecodeparadox, notez que c'est un mauvais sélecteur d'avoir.!=
et c'est sans doute ce à quoi je faisais référence plus tôt, mais n'a pas pu correctement rappeler. Je suppose que, depuis[attr!=value]
n'est pas un sélecteur de CSS3 (autant que je sache), il est évalué par le Grésillement et il semble prendre la valeur réelle. @thecodeparadox: Seulement parce qu'il travaille, ne signifie pas qu'il doit être utilisé. Double négations sont difficiles à comprendre.cette manière simple peut travailler.
filter
.... 🙂Si vous avez seulement besoin de sélectionner sur la base de la valeur de l'attribut de l'entrée puis la suivante va faire:
Mais sachez que cela ne fonctionnera pas si le
value
attribut n'est pas présent. Il aussi de ne pas travailler pour l'entrée de courant de valeur que si elle a été modifiée par l'utilisateur ou d'un script.Si vous souhaitez obtenir de l'entrée actuelle de la valeur que vous pouvez utiliser jquery's
filtre
fonction:Après que vous avez sélectionné la jquery éléments que vous pouvez ajouter à votre classe:
pour obtenir tous les domaines inspectés cela peut vous aider.
Pour ceux d'entrée.requis ne fonctionne pas écrire comme ci-dessous: