# Mit Dropdown Input-Feld ändern



## mcconnagal (23. März 2005)

Hallo,

Ich habe folgendes Formular programmiert, eigentlich ganz einfach. aber leider geschieht einfach nichts. Ich möchte, dass wenn man im Dropdown menue etwas auswählt, dass dann im Input-Feld einen Wert eingetragen wird.


```
<form name="formular">
<select name="method_csv">
  <option value="001" onclick="document.formular.eingabe.value='A'">001</option>
  <option value="002" onclick="document.formular.eingabe.value='B'">002</option>
  <option value="003" onclick="document.formular.eingabe.value='C'">003</option>
  <option value="004" onclick="document.formular.eingabe.value='D'">004</option>
</select>
<input type="text" name="eingabe" size="25" maxlength="150"> 
</form>
```
ich verstehe nicht, wo der Fehler ist. Wenn ich dasselbe (onclick="...") bei <select name= ...> eingebe funktioniert es, allerdings will ich ja, dass bei einem speziellen dropdown ein spezieller wert (A,B...) im input feld ausgegeben wird.

Danke schon im Voraus.


----------



## SilentWarrior (23. März 2005)

Probier's mal mit onchange. Dazu musst du allerdings den option-Tags die entsprechenden Werte zuweisen (also statt value="001" z. B. value="A").


----------



## mcconnagal (23. März 2005)

Nein, das ist ja gerade der witz. value muss 001 sein, weil später noch gebraucht. Mit onchange und onselect etc... hatte ich auch keinen erfolg! onfocus ging auch nicht.
Oder hat jemand einen anderen vorschlag wie man das (möglichst einfach) lösen kann?


----------



## con-f-use (23. März 2005)

Wieso in aller Welt geht das mit onchange nicht? Das Folgende - ich will es gar nicht Script nennen, weil es ein Einzeiler ist - macht genau was du willst und arbeitet mit onchange. Wenn du unbedingt auf die Nummer, also das 001 zugreifen willst kannst du das auch per options[0], options[1] usw. machen oder wenn es als Text in den Tags steht per innerHTML
	
	
	



```
<html><head></head><body>
    
    <form action=""><div>
    	<select id="method_csv" onchange="
    		this.form.eingabe.value = this.form.method_csv.options[
    			this.form.method_csv.options.selectedIndex].value
    	">
    		<option value="A">001</option>
    		<option value="B">002</option>
    		<option value="C">003</option>
    		<option value="D">004</option>
    	</select>
    	
    	<input type="text" id="eingabe" size="25" maxlength="150" />
    </div></form>
    
  </body></html>
```
 Nebenbei gibt es hier im Forum diverse Dropdown-Treads, die ebenfalls genau das Gleiche machen und sogar bei SELFHTML bzw. Google gibt's genug Treffer...
      Und nach W3C-Standart ist das name-Attribut nicht mehr erwünscht, weswegen du besser auf id umsteigst und DOM verwendest.


----------



## mcconnagal (23. März 2005)

danke für die Denkhilfen, aber leider MUSS value="001" etc. sein. im Input-Field soll eben gerade eine andere Variable stehen, als in Option-Value oder Option-Text. Der Value von Option und was ins Input-Feld kommt MÜSSEN unterschiedlich sein, denn:


Dropdown-Menue wird einmal Auswahl der Artikelnummer (in einem Onlineshop)
und was ins Input-feld kommt wird der Preis.


----------



## Quaese (23. März 2005)

Hi,

hoffentlich habe ich das Problem richtig verstanden.

Definiere doch ein assoziatives Array, dessen Komponenten-Indizes die Values aus den Options
sind. Als Wert bekommt das Array jeweils den Preis zugewiesen. Im *onchange*-Event schreibst
du den Inhalt des Array an der gerade gewählten Option als Index in das Inputfeld.

```
<html>
<head>
<title>www.tutorials.de</title>
<script type="text/javascript">
  <!--
var arrPreis = new Array();
arrPreis["001"] = "1.00 EUR";
arrPreis["002"] = "2.00 EUR";
arrPreis["003"] = "3.00 EUR";
arrPreis["004"] = "4.00 EUR";
 //-->
</script>
</head>
<body text="#000000" bgcolor="#DEE9DE" link="#FF0000" alink="#FF0000" vlink="#FF0000">
  <form action=""><div>
    <select id="method_csv" onchange="this.form.eingabe.value = arrPreis[this.options[this.selectedIndex].value];">
      <option value="001">A</option>
      <option value="002">B</option>
      <option value="003">C</option>
      <option value="004">D</option>
    </select>

    <input type="text" id="eingabe" size="25" maxlength="150" />
  </div></form>
</body>
</html>
```
Vielleicht hilft dir das weiter.

Ciao
Quaese


----------



## mcconnagal (23. März 2005)

Ja, in etwa so habe ich mir das vorgestellt. Danke das hilft mir sehr weiter. Damit kann ich was anfangen...
Danke für die Mühe..


----------



## Fari Selero (1. März 2012)

Hallo Freunde Ich habe ein kleines Problem in diesem Programm
Ich möchte mit input type laufen
Mit freundlichen Grüßen ich danke Ihnen sehr.

guten Tag










<html><head></head><body>

    <form action=""><div>
    	<input id="method_csv" onchange="
    		this.form.eingabe.value = this.form.method_csv.options[
    			this.form.method_csv.options.inputIndex].value
    	">
    		<option value="A">001</option>
    		<option value="B">002</option>
    		<option value="C">003</option>
    		<option value="D">004</option>
    	</input>

    	<input type="text" id="eingabe" size="25" maxlength="150" />
    </div></form>

  </body></html>


----------



## Parantatatam (1. März 2012)

Hallo erstmal hier im Forum,

bitte formatiere deine Skripte/Quelltext mit den entsprechenden BB-Codes.
Ansonsten: Magst du deine Frage noch einmal anders formulieren, denn ich verstehe nichts von dem, was du sagst.

```
<html>
<head>
</head>
<body>
  <form action="">
    <div>
      <input id="method_csv" onchange="this.form.eingabe.value = this.form.method_csv.options[this.form.method_csv.options.inputIndex].value">
        <option value="A">001</option>
        <option value="B">002</option>
        <option value="C">003</option>
        <option value="D">004</option>
      </input>
      <input type="text" id="eingabe" size="25" maxlength="150" />
    </div>
  </form>
</body>
</html>
```
Nachtrag: Mir ist aufgefallen, dass dein erstes Eingabefeld an seiner Stelle falsch ist, da dort eine Auswahlfläche hin muss, also so:

```
<select size="1" id="method_csv" onchange="document.getElementById('eingabe').value=this.value">
  <option value="A">001</option>
  <option value="B">002</option>
  <option value="C">003</option>
  <option value="D">004</option>
</select>
<input type="text" id="eingabe" size="25" maxlength="150" />
```


----------

