problème d'attribut jQuery maxlength avec textareas
-
22-08-2019 - |
Question
Avec la version jQuery 1.2.3 Je suis en train d'ajouter des nœuds après éléments textarea avec attribut « maxlength », mais il ne fonctionne pas:
$("textarea[@maxlength]").after("<b>Aint working</b>");
Voici le code HTML:
<textarea maxlength="500">This is a test.</textarea>
<textarea maxlength="250">Yet another line.</textarea>
<textarea maxlength="125">Bar or foo, whatever.</textarea>
La chose étrange est, si je change le maxlength
d'attribut avec par exemple rel
que cela fonctionne très bien!
Consultez cet exemple de la vie réelle: http://www.host2000.be/_temp/jquery_tests_counter.html
PS:. Je suis au courant de la [@attribute] notation qui n'est prise en charge dans jQuery 1.3, mais cela n'a rien à voir avec le problème
La solution
Avec votre version de jQuery, il ne fonctionne qu'avec un petit truc. La valeur implicite de textarea a des valeurs différentes pour les différents navigateurs. Firefox, par exemple, a la valeur implicite de -1.
Alors, pour votre script fonctionne sur Firefox, vous devez faire ce qui suit:
$("textarea[@maxlength!=-1]").after("<b>Aint working</b>");
vous pouvez trouver plus d'informations sur les valeurs implicites de l'attribut maxlength
.
Amusez-vous!
Autres conseils
Prise de vue dans l'obscurité: il peut être parce que maxlength n'est pas un attribut valide pour textarea .
EDIT:. Je viens d'essayer votre exemple avec jQuery 1.3 et enlever le @, et cela a fonctionné parfaitement
EDIT # 2: Utilisation de jQuery 1.2.6 fonctionne aussi sans @ ... Avez-vous essayé de les supprimer
?