Boucle à travers toutes les zones de texte dans un formulaire à l'aide de jQuery
J'ai un formulaire qui se présente comme un tableur.
Je veux valider le texte dans chaque zone de texte et si ce n'est pas numérique, modifier l'arrière-plan de la zone de texte et d'afficher un message.
Je peux tout faire sauf de la boucle de la partie.
Je suppose que c'est un de...chaque instruction?
- Semble que vous pourriez être mieux d'aller au large avec un validation plugin plutôt qu'en parcourant les DOM et en essayant de handroll il. Ou, en fonction de la compatibilité du navigateur besoins, laisser le navigateur gère pour vous et utilisez une entrée numérique de type.
- +1 j'ai aimé la façon dont vous avez posé la question. demandant un petit peu pour faire une grande chose et ne demande pas à "tout faire pour moi". belle question!
Vous devez vous connecter pour publier un commentaire.
Si vous en avez l'id du formulaire:
Je pense que c'est ce que vous êtes après. Vous pouvez également spécifier
input[type="text"]
si vous voulez être plus précis à<input type="text" ... />
Ou, de façon plus concise:
:input
sélectionnera<select>
éléments, il n'y a pas de raison de les valider, il n'est pas de "texte libre"<select>
même lebuttons
:input
est probablement trop vague, mais je ne savais pas si nous parlionstype="text"
, à l'aide de HTML5 ettype="number"
ou tout autre variation (c'est aussi pourquoi j'ai mentionné l'autre sélecteur dans ma réponse)var $el = $(this); $el.val()
utiliser ceci:this.value
. N'abusez pas de jQuery, il ne doit pas être utilisé au lieu de javascript natif des éléments du DOM..val()
cris simplicité quand il s'agit d'éléments d'entrée. Je doute aussi qu'ils font quelque chose dans un environnement de production.jsFiddle( http://jsfiddle.net/BctQP/18/ )
$('#theForm input[type="button"]').click(...)
? (Ou, mieux encore, en donnant la touche d'un IDENTIFIANT et d'liaison à cet)[type="text"]
dans le sélecteur.$.isNumeric
valide les nombres à virgule flottante en plus des entiers, c'est la grande différence.parseFloat
queparseInt
. si les valeurs décimales sont valides, vous pouvez utiliser "$.isNumeric" sinon, utiliserparseInt
ou une expression régulière.Pour chaque boucle:
Eu ce travail pour moi! 🙂 références
Boucle à travers toutes les zones de texte dans un formulaire à l'aide de jQuery &
https://stackoverflow.com/a/311589
JS:
CSS:
HTML: