Dropdown per Options-Auswahl deaktivieren
der_boese_golf
- javascript
0 hotti0 der_boese_golf0 Beat0 EKKi
0 Jaroslav Jablonski
Hallo!
Folgendes Problem:
Ich möchte ein Auswahlfeld mit vordefinierten Optionen anbieten. Sind die bereits angebotenen Möglichkeiten für den Betrachter nicht ausreichend, soll er so etwas wie "eigene Angabe" auswählen, worauf sich das komplette Dropdown deaktivert und daneben ein Eingabefeld erscheint, mit der die Dropdown-Auswahlmöglichkeiten dann für andere erweitert (der Inhalt wird dann der DB hinzugefügt).
Hier meine Versuche:
function disable_selection () {
if (document.forms.vars.sys_manufacurer.value == "1")
{ document.forms.vars.sys_manufacurer.disabled=true;
}
else
{ document.forms.vars.sys_manufacurer.disabled=false;
}
}
<p>
<label for="sys_manufacurer" class="left">Hersteller:</label>
<select class="left" name="sys_manufacturer" onchange="javascript:disable_selection();" >
<option>Angabe 1</option>
<option>Angabe 2</option>
<option>Angabe 3</option>
<option value="1">eigene Angabe</option>
</select>>
</p>
Das ganze Formular zieht sich über verschiedene Smarty-Templates und heißt "vars"...
Vielleicht kann/mag mir ja jemand helfen, das zum laufen zu bekommen...
Danke!
Gruß
Jens
Hallo!
Folgendes Problem:
Ich möchte ein Auswahlfeld mit vordefinierten Optionen anbieten. Sind die bereits angebotenen Möglichkeiten für den Betrachter nicht ausreichend, soll er so etwas wie "eigene Angabe" auswählen, worauf sich das komplette Dropdown deaktivert und daneben ein Eingabefeld erscheint, mit der die Dropdown-Auswahlmöglichkeiten dann für andere erweitert (der Inhalt wird dann der DB hinzugefügt).
Warum so komliziert? Mach die zwei Felder. Wenn in 'customer' was drinsteht, wird das genommen, ansonsten das vom 'dropdown'.
--Hotte
Warum so komliziert? Mach die zwei Felder. Wenn in 'customer' was drinsteht, wird das genommen, ansonsten das vom 'dropdown'.
Ich hätte aus Gründen der Benutzerführung gerne so... Wenn ich die Möglichkeit offen lasse, in beiden Feldern was einzutragen/auszuwählen, fühlt sich der Benutzer eingeladen in beide auch was reinzuschreiben/auszuwählen!
Das gibt das IMHO Chaos in der DB...
Entweder es gibt den Hersteller schon und der Benutzer kann ihn auswählen oder er soll seinen der Liste neu hinzufügen!
Ich hätte aus Gründen der Benutzerführung gerne so... Wenn ich die Möglichkeit offen lasse, in beiden Feldern was einzutragen/auszuwählen, fühlt sich der Benutzer eingeladen in beide auch was reinzuschreiben/auszuwählen!
Das gibt das IMHO Chaos in der DB...
Entweder es gibt den Hersteller schon und der Benutzer kann ihn auswählen oder er soll seinen der Liste neu hinzufügen!
Ich bin da mit dir einverstanden.
Allerdings würde ich semantisch wie folgt vorgehen:
Zwei Redioboxen für
Das Userdefined Inputfeld
Die Selectbox.
Ist nun JS ausgeschaltet, sollte aufgrund der Radio Auswertung entschieden werden.
Mit JS würde man aufgrund der Radios entweder das Inputfeld oder die Selectbox auf dissabled setzen.
Es sind also zwei onclick Eventhandler in den Radioboxen gefragt.
Mal soviel
mfg Beat
Ich hätte aus Gründen der Benutzerführung gerne so... Wenn ich die Möglichkeit offen lasse, in beiden Feldern was einzutragen/auszuwählen, fühlt sich der Benutzer eingeladen in beide auch was reinzuschreiben/auszuwählen!
Das gibt das IMHO Chaos in der DB...
Entweder es gibt den Hersteller schon und der Benutzer kann ihn auswählen oder er soll seinen der Liste neu hinzufügen!Ich bin da mit dir einverstanden.
Allerdings würde ich semantisch wie folgt vorgehen:Zwei Redioboxen für
- predefined options (default:selected)oder
- userdefined
Das Userdefined Inputfeld
Die Selectbox.
Ist nun JS ausgeschaltet, sollte aufgrund der Radio Auswertung entschieden werden.
Mit JS würde man aufgrund der Radios entweder das Inputfeld oder die Selectbox auf dissabled setzen.
Es sind also zwei onclick Eventhandler in den Radioboxen gefragt.
Mal soviel
mfg Beat
Danke für den Beitrag! Ich verstehe auch, dass man oft jemandem damit besser hilft ihm nen anderen Weg aufzuzeigen, ABER ich möchte das schon so machen wie oben beschrieben! (Es sei denn ihr habt wirklich schlagkräftige Argumente gegen den Weg...)
Und die Variante von Beat finde ich leider extrem unelegant... das ganze soll nämlich in ein Formular eingebettet sein, in dem noch weitere Angaben zu einem Gesamtsystem abgefragt werden. Da passt das schon optisch nicht rein.
Also, wie lese ich aus nem Dropdown aus, welche Option selektiert wurde und wie gebe ich das Attribur "disabled" an das <select>-Tag zurück...
Nach Möglichkeit leicht verständlich... ich verstehe Code zwar, tue mich mangels Übung aber schwer damit welchen zu schreiben...
Thx
Jens
Danke für den Beitrag! Ich verstehe auch, dass man oft jemandem damit besser hilft ihm nen anderen Weg aufzuzeigen, ABER ich möchte das schon so machen wie oben beschrieben! (Es sei denn ihr habt wirklich schlagkräftige Argumente gegen den Weg...)
Hab ich gesagt: Falls JS ausgeschaltet ist.
Für mich wäre das Argument genug.
Und die Variante von Beat finde ich leider extrem unelegant... das ganze soll nämlich in ein Formular eingebettet sein, in dem noch weitere Angaben zu einem Gesamtsystem abgefragt werden. Da passt das schon optisch nicht rein.
Du packst etwas, das nicht Option ist, sondern ein Auswahlmodus darstellt in eine Option hinein. Das schafft Verwirrung, die du erst mal sauber lösen muss.
Also, wie lese ich aus nem Dropdown aus, welche Option selektiert wurde und wie gebe ich das Attribur "disabled" an das <select>-Tag zurück...
Nach Möglichkeit leicht verständlich... ich verstehe Code zwar, tue mich mangels Übung aber schwer damit welchen zu schreiben...
<select onselect:"yourfunc;">
<option id=userdefined>Usereigabe</option>
...
</select>
...
<input id=userinput>
function yourfunc{
if( document.getElementById('userdefined').selected = true ){
document.getElementById('userinput').disabled = false;
}
else{document.getElementById('userinput').disabled = 'disabled';}
}
Vollkommen ungetestet.
mfg Beat
Hi,
[...] ABER ich möchte das schon so machen wie oben beschrieben! (Es sei denn ihr habt wirklich schlagkräftige Argumente gegen den Weg...)
Wenn ich das richtig sehe willst du das Select disablen, wenn eine bestimmte Auswahl getroffen wurde. Was ist aber wenn es sich der User doch nochmal anders überlegt? Dann ist das Select disabled und seine Auswahl kann nichtmehr verändert werden.
mfG,
steckl
Mahlzeit der_boese_golf,
Entweder es gibt den Hersteller schon und der Benutzer kann ihn auswählen oder er soll seinen der Liste neu hinzufügen!
Dazu fällt mir spontan sowas ein:
<form>
<ul>
<li>
<input type="radio" name="auswahl" value="vorhanden" id="auswahl_vorhanden"><label for="auswahl_vorhanden">Vorhanden:</label><select name="vorhanden"></select>
</li>
<li>
<input type="radio" name="auswahl" value="neu" id="auswahl_neu"><label for="auswahl_neu">Neu:</label><input type="text" name="neu">
</li>
</ul>
</form>
Dann musst Du halt nur noch per Javascript-Onclick auf den Radiobuttons dafür sorgen, dass das jeweils andere Eingabeelement disabled ist.
MfG,
EKKi
Vielleicht kann/mag mir ja jemand helfen, das zum laufen zu bekommen...
Wie siehts mal mit ner anstzändigen Fehlerbeschreibung aus, unter läuft nicht kann ich mir alles mögliche vorstellen. Ansonsten:
http://de.selfhtml.org/javascript/objekte/options.htm#selected_index
~JJ