disablen und wieder enablen von feldern
-
Also ich hab nen input feld zum Fileupload für Bilder.
Alternativ kann man aus einer Liste schon hochgeladener Bilder auswählen.
Jetzt möchte ich gern das File-Input disablen, wenn aus dieser Liste etwas anderes als der Text "hochladen" ausgewählt wird, anderenfalls wieder enablen..ich dachte mir das jetzt so:
<select id="image" onchange="java\1:document.getElementByid('imgf').disabled = (value == 'hochladen')? 'false' else 'true';" > <option>hochladen</option> <option>anderes</option> </select> <input type="file" id="imgf" />
Kann mir wer erklären, wie das nun richtig geht??
-
Hallo,
was ist denn dein konkretes Problem? Die Firebug Extension koennte dir in deinem Fall Syntaxfehler o.ae. anzeigen.
Ich glaube aber, dass dein Code so nicht korrekt ist. Du musst nicht (den String) 'false' oder 'true' auf das Disabled-Feld setzen, sondern true/false - also Boolean.Edit:
Es heisst iirc auch document.getElementById (Id Großschreiben)
-
Das mit der id ist nen tippfehler- Mein Entwicklungsrechner ist grad nicht online.
Mit dem true und false setzen klappts zwar im firefox, aber der explorer wills so nicht..
Als vorauswahl hab ich jetzt nen Standardbild. Will ich jetzt eine andere Option auswählen, wird die Filebox grau und nix geht mehr.
-
Hi,
kannst du vllt. etwas Code zum Nachverfolgen posten?
Prüfe auch mal, welche Stelle vom JS Statement Probleme macht. Lass dir mal den existierenden Wert des disabled Eigenschaft der Input Box anzeigen (alert) - was kommt dann?Sonst möchte ich dir die Prototype Javascript Library sehr ans Herz legen. Dort würdest du schreiben 'new Element("id").disable()'. Das klappt dann auch in allen Browsern. Ist viel besser als 10 verschiedene Versionen seines Codes zu schreiben
-
function toggleImgFile(value) { if (value == 'hochladen') { document.getElementById('imgfile').disabled= false; } else { document.getElementById('imgfile').disabled= true; } } //--> </script> <hr /> </td> </tr> <tr> <td STYLE="background:#000000" width="180">Bild</td> <td style="background:#000000"> <select id="bild_url" name="bild_url" onchange="java\1:toggleImgFile(value);"> <option>hochladen</option> %images% </select><br> <input type="file" name="imgfile" id="imgfile" /> <br><br> </td> </tr>
eigentlich versuche ich, javascript zu minimieren, aber diese Funktion war halt gefordert..
-
der Value-Wert von Options ist nicht der Text-Wert der Option, d.h. der Value-Wert muss explizit angegeben werden, wenn du ihn abfragen willst, so wie du das jetzt machts ist der nämlich immer leer
<option value="hochladen">hochladen</option> <option value="anderes">anderes</option>
alternativ kannst du den selectedIndex des Selects abfragen
-
So funktioniert's bei mir auch im IE:
<script type="text/javascript"> function toggleImgFile(value) { document.getElementById('imgfile').disabled = (value != 'hochladen'); } //--> </script> <select id="bild_url" name="bild_url" onchange="document.getElementById('imgfile').disabled = (value != 'hochladen');"> <option value="hochladen">hochladen</option> <option value="blub">blub</option> </select> <input type="file" name="imgfile" id="imgfile" />
Wieso gross mit Bedingungen werfen, wenn der Vergleich an sich schon das Value liefert?