Sélectionner et désactiver chaque champ de saisie dans un formulaire, enveloppé dans une table dans jquery

StackOverflow https://stackoverflow.com/questions/2348520

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?

Était-ce utile?

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);
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top