Elemente ausgrauen bitte um Hilfe
Chris
- javascript
Das Beispiel funktioniert in FireFox und Opera einwandfrei. nur der IE spielt nicht mit.
Ziel ist es nur mittel angewählten Radio-buttons Element ausgrauen.
Gibs vielleicht ne bessere Lösung ?
Dank im Vorraus ;)
<style type="text/css">
.text1 {
color:#999999;
text-align:left;
}
</style>
<br>
<form action="upload.php" method="get" name="formname">
<p class="text1">
Auswahl 1
<input onclick="javascript:select_target_1()" type="radio" value="set_mygallerie" name="select_set" id="radio_add_gal">
<select id="id_select_gal" name="name_select_gal">
<option>Option 1</option> </select>
</p>
<p class="text1">Auswahl 2
<input onclick="javascript:select_target_2()" type="radio" value="set_newgallerie" name="select_set" id="radio_new_gal">
<input type="text" name="new_gal_name" maxlength="50" id="id_input_newgal">
Kategorie: <select name="name_select_inkat" id="id_select_inkat">
<option>Option 1</option><option>Option 2</option><option>Option 3</option><option>Option 4</option></select>
</p>
<p class="text1">Auswahl 3
<input onclick="javascript:select_target_3()" type="radio" value="set_onepic" name="select_set" id="radio_one_pic">
Kategorie: <select name="name_select_kat" id="id_select_kat">
<option>Option 1</option><option>Option 2</option><option>Option 3</option><option>Option4</option></select>
</p>
</form>
<script type="text/javascript">
setdisabledidselectgal = document.createAttribute("disabled");
setdisabledidselectgal.nodeValue = "disabled";
setdisabledidinputnewgal = document.createAttribute("disabled");
setdisabledidinputnewgal.nodeValue = "disabled";
setdisabledidselectinkat = document.createAttribute("disabled");
setdisabledidselectinkat.nodeValue = "disabled";
setdisabledidselectkat = document.createAttribute("disabled");
setdisabledidselectkat.nodeValue = "disabled";
function select_target_1(){
document.getElementById("id_input_newgal").setAttributeNode(setdisabledidinputnewgal);
document.getElementById("id_select_inkat").setAttributeNode(setdisabledidselectinkat);
document.getElementById("id_select_kat").setAttributeNode(setdisabledidselectkat);
document.getElementById("id_select_gal").removeAttribute("disabled");
}
function select_target_2() {
document.getElementById("id_select_gal").setAttributeNode(setdisabledidselectgal);
document.getElementById("id_select_kat").setAttributeNode(setdisabledidselectkat);
document.getElementById("id_input_newgal").removeAttribute("disabled");
document.getElementById("id_select_inkat").removeAttribute("disabled");
}
function select_target_3(){
document.getElementById("id_select_gal").setAttributeNode(setdisabledidselectgal);
document.getElementById("id_input_newgal").setAttributeNode(setdisabledidinputnewgal);
document.getElementById("id_select_inkat").setAttributeNode(setdisabledidselectinkat);
document.getElementById("id_select_kat").removeAttribute("disabled");
}
</script>
Hi,
Das Beispiel funktioniert in FireFox und Opera einwandfrei. nur der IE spielt nicht mit.
"Spielt nicht mit" ist als Problembeschreibung genauso wertlos wie "funzt nich".
Lies bitte die Tipps fuer Fragende, und beschreibe dann das Problem vernuenftig. Beschreibe beispielsweise, welche Fehlermeldungen du erhaeltst (kleines gelbes Dreieck in der Statuszeile).
MfG ChrisB
Ja Entschuldigung.
Der IE reagiert beim ersten Anwählen eines Radio-Buttons normal und graut die angegebenen Element auch richtig aus.
Nochmaliges Anwählen kommt die Fehlermeldung "Ungültiges Argument".
Das Problem liegt wohl darin das der IE mit der Anweisung removeAttribute("disabled") nicht zurecht kommt.
Bin selbst draufgekommen.
die Zuweisung für createAttribute und den zugehörigen Knoten IN DER Funktion setzten.
Jetzt checkt das auch der IE. Uff...^^
die Zuweisung für createAttribute und den zugehörigen Knoten IN DER Funktion setzten.
Diese Zuweisungen sind überflüssig, da ein input Feld schon ein Attribut disabled hat ohne dass du das erzeugen musst.
var inp = document.createElement('input');
alert(typeof inp.disabled)
Deshalb sind idese ganzen Attribute Funktionen hier völlig unnötig. Mach es so wie Chris dir schon sagte und gut ist.
Struppi.
Tut mir Leid bin nicht soo der Programmierprofi und jetzt versteh ich nur noch Bahnhof.
Wie würde das bei diesen Beispiel aussehen??
<form action="upload.php" method="get" name="formname">
<select id="id">
<option>option1</option>
<option>option2</option>
</select>
<p>Eins<input type="radio" name="radio_name" onclick="javascript:select_eins()"></p>
<p>Zwei<input type="radio" name="radio_name" onclick="javascript:select_zwei()"></p>
</form>
<script type="text/javascript">
function select_eins() {
eins = document.createAttribute("disabled");
eins.nodeValue = "disabled";
document.getElementById("id").setAttributeNode(eins);
}
function select_zwei() {
document.getElementById("id").removeAttribute("disabled");
}
</script>
Hi,
Tut mir Leid bin nicht soo der Programmierprofi und jetzt versteh ich nur noch Bahnhof.
http://de.selfhtml.org/javascript/objekte/elements.htm#disabled
MfG ChrisB
Hi,
Tut mir Leid bin nicht soo der Programmierprofi und jetzt versteh ich nur noch Bahnhof.
http://de.selfhtml.org/javascript/objekte/elements.htm#disabled
MfG ChrisB
»»
Danke euch :)
PS: Bei meiner OffVersion (SELFHTML: Version 8.1 vom 25.03.2005) wurde das noch nicht beschrieben.
Hi,
Das Beispiel funktioniert in FireFox und Opera einwandfrei. nur der IE spielt nicht mit.
Ich sehe gerade, dass du sehr oft mit createAttribute/setAttributeNode arbeitest - das ist im IE oft problematisch.
Viel verlaesslicher und einfacher ist es i.a.R., einfach dem Attribut den gewuenschten Wert zuzuweisen,
elementreferenz.attributName = wert;
MfG ChrisB