der_boese_golf: Dropdown per Options-Auswahl deaktivieren

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:

JAVASCRIPT:

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;
}
}

HTML:

<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

  1. 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

    1. 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!

      1. 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

        --
        Woran ich arbeite:
        X-Torah
        ><o(((°>        ><o(((°>
           <°)))o><                      ><o(((°>o
        1. 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

          1. 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

            --
            Woran ich arbeite:
            X-Torah
               <°)))o><                      ><o(((°>o
          2. 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

      2. 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

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2. 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