2010-02-27 13 views
8

sto disabilitazione di una maschera basata su una casella ...Selezionare e disabilitare ogni campo di input in un modulo, avvolto in una tabella in jQuery

Ho problemi aggiungendo l'attributo disabilitato.

qui è quello che ho ottenuto finora: HTML:

<table id="shipInfoTable"> 
    <tr> 
    <td>Name:</td> 
    <td><input type="text" name="name" /></td> 
    </tr> 
    ... 
</table> 

selettore Javascript/manipolazione degli attributi (jQuery):

errore
$("#shipInfoTable tbody tr td input").each(function(index, item){ 
    item.attr("disabled", true); 
}); 

Chrome Dev Console: Uncaught TypeError: Object #<an HTMLInputElement> has no method 'attr'

Quando Avviso allo item all'interno dello .each() avvisi [object HTMLInputElement]

Non sono sicuro di come selezionare correttamente l'elemento di input. Che cosa sto facendo di sbagliato?

risposta

12

La funzione non ti darà un oggetto jQuery. Dovrebbe essere:

$("#shipInfoTable input").each(function(index, item){ 
    $(item).attr("disabled", true); 
}); 

(notare che ho anche semplificato il vostro selettore, funziona ancora)
Se non si sta facendo nulla Eles con ogni elemento, questo funzionerà così:

$("#shipInfoTable input").attr("disabled", true); 
+1

Nota: nelle versioni correnti di jQuery, questo è stato modificato in '.prop (" disabled ", true)'. Sono abbastanza sicuro che 'attr' non ha funzionato era inteso comunque. – Kobi

4

....

$("#shipInfoTable tbody tr td input").each(function(){ 
    $(this).attr("disabled", true); 
}); 
0

il problema è la mancanza di $() nella funzione .each() ...

$("#shipInfoTable tbody tr td input").each(function(index, item){ 
    $(item).attr("disabled", true); 
}); 
Problemi correlati