Sélectionner et désactiver chaque champ de saisie dans un formulaire, enveloppé dans une table dans jquery
-
23-09-2019 - |
Question
Je suis un formulaire basé la désactivation sur une case à cocher ...
Je ne parviens pas à ajouter l'attribut disabled.
Voici ce que je suis arrivé à ce jour: HTML:
<table id="shipInfoTable">
<tr>
<td>Name:</td>
<td><input type="text" name="name" /></td>
</tr>
...
</table>
sélecteur Javascript / manipulation d'attribut (jquery):
$("#shipInfoTable tbody tr td input").each(function(index, item){
item.attr("disabled", true);
});
Chrome Dev erreur Console:
Uncaught TypeError: Object #<an HTMLInputElement> has no method 'attr'
Quand j'alerter le item
dans le .each()
il alerte [object HTMLInputElement]
Pas tout à fait sûr de savoir comment sélectionner l'élément d'entrée correctement. Qu'est-ce que je fais mal?
La solution
La fonction ne vous donnera pas un objet jQuery. Il devrait être:
$("#shipInfoTable input").each(function(index, item){
$(item).attr("disabled", true);
});
(notez que je également simplifié votre sélecteur, il fonctionne toujours)
Si vous ne faites pas eles quoi que ce soit à chaque élément, cela fonctionnera aussi bien:
$("#shipInfoTable input").attr("disabled", true);
Autres conseils
....
$("#shipInfoTable tbody tr td input").each(function(){
$(this).attr("disabled", true);
});
la question est le manque de $ () dans la fonction .each () ...
$("#shipInfoTable tbody tr td input").each(function(index, item){
$(item).attr("disabled", true);
});