2010-02-27 3 views
8

Ich Deaktivierung ...Auswählen und jedes Eingabefeld auf einem Kontrollkästchen, ein Formular in einer Tabelle innerhalb einer Form, eingewickelt in deaktivieren basierend jquery

Ich habe Probleme das deaktivierte Attribut hinzufügen.

hier ist das, was ich so weit gekommen: HTML:

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

Javascript Selektor/Attributmanipulation (jquery):

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

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

Wenn Ich warnt die item innerhalb der .each() es warnt [object HTMLInputElement]

Nicht ganz sicher, wie Sie das Eingabeelement richtig auswählen. Was mache ich falsch?

Antwort

12

Die Funktion gibt Ihnen kein jQuery-Objekt. Es sollte:

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

(beachten Sie, dass ich Ihre Wähler auch vereinfacht, es funktioniert immer noch)
Wenn Sie mit jedem Element nichts eles tun, wird dies auch funktionieren:

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

Bitte beachten Sie: In den aktuellen Versionen von jQuery wurde dies in '.prop (" disabled ", true)' geändert. Ich bin mir ziemlich sicher, dass 'attr' nicht getan hat, war sowieso beabsichtigt. – Kobi

4

....

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

das Problem ist der Mangel an $() in der .each() Funktion ...

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