Formularelemente deaktivieren
Matze
- javascript
Hallo!
Ich beschäftige mich gerade mit disabled für Formularelemente und habe folgendes Problem.
Ich möchte voraus schicken, dass ich nicht viel Ahnung von JS habe, aber ich habe versucht, das Beispiel für mich anzupassen.
Als erstes wurde von mir der Radiobutton für "ja" entfernt.
Dann habe ich in der Abfrage if (document.Testform.auto[0].checked == true) das Array "auto[]" durch (nur) "auto" ersetzt. Anschließend wurden alle Radiobutton, durch Checkbox ersetzt.
Weil ich bei der späteren Verarbeitung mit PHP gern ein schönes Array hab, haben meine Checkboxen nicht mehr die Bezeichnungen name="autoart" sondern name="autoart[]" bekommen.
Leider funktioniert das Deaktivieren jetzt nicht mehr.
Ich habe bereits folgendes versucht.
document.Testform.autoart[][i].disabled = deaktiviert;
document.Testform.autoart[0][i].disabled = deaktiviert;
document.Testform."autoart[]".[i].disabled = deaktiviert;
document.Testform."autoart[]"+[i].disabled = deaktiviert;
Die letzten Beiden auch mit ' statt ".
Könnte mir bitte jemand helfen das Beispiel mit den von mir verwendeten Objektnamen "zum laufen zu kriegen"? Oder habe ich einen völlig anderen Denkfehler?
Danke für eure Hilfe!
Matze
Hallo Matze,
Leider funktioniert das Deaktivieren jetzt nicht mehr.
Ich habe bereits folgendes versucht.
document.Testform.autoart[][i].disabled = deaktiviert;
document.Testform.autoart[0][i].disabled = deaktiviert;
document.Testform."autoart[]".[i].disabled = deaktiviert;
document.Testform."autoart[]"+[i].disabled = deaktiviert;
> Die letzten Beiden auch mit ' statt ".
Du willst sowas wie:
~~~javascript
for (var i = 0; i < document.forms['Testform'].elements['autostart[]'].length; i++) {
document.forms['Testform'].elements['autostart[]'][i].disabled = deaktiviert;
}
Siehe: http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines.
Viele Grüße,
Christian
Hallo Christian!
Fast!
document.forms['Testform'].elements['autostart[]'].length; i++)
^^
Ist es dadurch auch Windowskompatibel? *SCNR
Danke und Grüße,
Matze
Hallo!
Jetzt habe ich noch ein anderes Problem festgestellt. Und zwar werden Input-Elemente im Firefox nicht eingegraut.
Leider habe ich gerade keinen anderen Browser zum testen, aber wenns allein im Firefox ist, will ich es beheben.
Bleibt mir nichts anderes übrig als neben dem Deaktivieren des Elements zusätzlich die Hintergrundfarbe zu ändern? Und wenn ja, ist das "eingegraute" doch sicher eine Browsereinstellung und die Farbe von disabled muss sich nicht automatisch mit meinem gewählten Grau decken oder?
Danke für eure Hilfe!
Grüße, Matze
Hallo,
for (var i = 0; i < document.forms['Testform'].elements['autostart[]'].length; i++) {
document.forms['Testform'].elements['autostart[]'][i].disabled = deaktiviert;
}
Und wenn man es übersichtlicher und performant haben will, nimmt man:
~~~javascript
var elements = document.forms.Testform.elements['autostart[]'];
for (var i = 0, element; element = element[i]; i++) {
element.disabled = deaktiviert;
}
Mathias