Variablenübergabe an ein script
Sokrates
- javascript
Hallo erstmal,
nach ewiglangem rumprobieren erbitte ich Hilfe.
Folgendes Problem:
ich habe ein kleines feines Script um dropdownmenus auf den Ursprungswert zurückzusetzen. Funktioniert soweit ganz prima. Nun habe ich aber über 30 solcher Menus die ich zurücksetzen möchte ohne den script 30 mal zu duplizieren nur um jeweils nur einen einzigen wert zu verändern.
das Script sieht folgendermaßen aus:
<script type="text/javascript">
function AuswahlReset () {
for (i = 0; i < document.antrag.vpanerede.length; i++)
if (document.antrag.vpanrede.options[i].defaultSelected == true)
document.antrag.vpanrede.options[i].selected = true; }
</script>
das Menus die dabei angesteuert werden sollen:
<select name="vpanrede" size="1" id="vpanrede">
<option value="<?php echo "$vpanrede"; ?>" selected>
<?php if (!isset($vpanrede)) {echo "--";} elseif ($vpanrede == "w") {echo "Frau"; } elseif ($vpanrede == "m") {echo "Herr"; } ?></option>
<option value="w">Frau</option>
<option value="m">Herr</option>
</select>
der aufruf des scriptes erfolgt dann folgendermaßen (für Menu 1):
<input type="button" name="loeschen" value=""
onClick="AuswahlReset(); ">
um wie oben erwähnt nicht 30 Scripte duplizieren zu müssen würde ich das so ähnl realisieren:
Script (hab auch andere Schreibweisen schon vergebens durchprobiert):
<script type="text/javascript">
function AuswahlReset (feldname) {
for (i = 0; i < "document.antrag."+ feldname +".length"; i++)
if ("document.antrag."+ feldname +".options[i].defaultSelected == true)
"document.antrag."+ feldname +".options[i].selected = true; }
</script>
Anzusprechende menus:
<select name="vpanrede" size="1" id="vpanrede">
<option value="<?php echo "$vpanrede"; ?>" selected>
<?php if (!isset($vpanrede)) {echo "--";} elseif ($vpanrede == "w") {echo "Frau"; } elseif ($vpanrede == "m") {echo "Herr"; } ?></option>
<option value="w">Frau</option>
<option value="m">Herr</option>
</select>
<select name="vpanrede2" size="1" id="vpanrede2">
<option value="<?php echo "$vpanrede2"; ?>" selected>
<?php if (!isset($vpanrede2)) {echo "--";}
elseif ($vpanrede2 == "w") {echo "Frau"; }
elseif ($vpanrede2 == "m") {echo "Herr"; } ?></option>
<option value="w">Frau</option>
<option value="m">Herr</option>
</select>
etc.
Aufruf des Skriptes mit variablenübergabe so wie ich es mir vorstellen würde, daß aber leider nicht funktioniert:
<input type="button" name="loeschen" value=""
onClick="AuswahlReset('vpanrede'); ">
<input type="button" name="loeschen" value=""
onClick="AuswahlReset('vpanrede2'); ">
So könnte ich beliebig viele Dropdownmenus mit nur einem Script aus verschiedenen events heraus abrufen. Ich denke das ich die zu übergebene Variable in dem SCript nur anders maskieren muss aber wie?
Vielen Dank im Voraus.
Sokrates
Das ganze noch mal in gekürzter Fassung der übersichtlichkeit zuliebe:
nach ewiglangem rumprobieren erbitte ich Hilfe.
Folgendes Problem:
ich habe ein kleines feines Script um dropdownmenus auf den Ursprungswert zurückzusetzen. Funktioniert soweit ganz prima. Nun habe ich aber über 30 solcher Menus die ich zurücksetzen möchte ohne den script 30 mal zu duplizieren nur um jeweils nur einen einzigen wert zu verändern.
das Script sieht folgendermaßen aus:
<script type="text/javascript">
function AuswahlReset () {
for (i = 0; i < document.antrag.vpanerede.length; i++)
if (document.antrag.vpanrede.options[i].defaultSelected == true)
document.antrag.vpanrede.options[i].selected = true; }
</script>
das Menus die dabei angesteuert werden sollen:
<select name="vpanrede" size="1" id="vpanrede">
<option value="--"></option>
<option value="w">Frau</option>
<option value="m">Herr</option>
</select>
der aufruf des scriptes erfolgt dann folgendermaßen (für Menu 1):
<input type="button" name="loeschen" value="löschen" onClick="AuswahlReset(); ">
um wie oben erwähnt nicht 30 Scripte duplizieren zu müssen würde ich das so ähnl realisieren:
Script (hab auch andere Schreibweisen schon vergebens durchprobiert):
<script type="text/javascript">
function AuswahlReset (feldname) {
for (i = 0; i < "document.antrag."+ feldname +".length"; i++)
if ("document.antrag."+ feldname +".options[i].defaultSelected == true)
"document.antrag."+ feldname +".options[i].selected = true; }
</script>
Anzusprechende menus:
<select name="vpanrede" size="1" id="vpanrede">
<option value="--"></option>
<option value="w">Frau</option>
<option value="m">Herr</option>
</select>
<select name="vpanrede2" size="1" id="vpanrede2">
<option value="<?php echo "$vpanrede2"; ?>" selected>
<?php if (!isset($vpanrede2)) {echo "--";}
elseif ($vpanrede2 == "w") {echo "Frau"; }
elseif ($vpanrede2 == "m") {echo "Herr"; } ?></option>
<option value="w">Frau</option>
<option value="m">Herr</option>
</select>
etc.
Aufruf des Skriptes mit variablenübergabe so wie ich es mir vorstellen würde, daß aber leider nicht funktioniert:
<input type="button" name="loeschen" value="loeschen"
onClick="AuswahlReset('vpanrede'); ">
<input type="button" name="loeschen" value="loeschen"
onClick="AuswahlReset('vpanrede2'); ">
So könnte ich beliebig viele Dropdownmenus mit nur einem Script aus verschiedenen events heraus abrufen. Ich denke das ich die zu übergebene Variable in dem SCript nur anders maskieren muss aber wie?
Vielen Dank im Voraus.
Sokrates
hi,
du suchst http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines
gruß,
wahsaga
danke, die Seite hatte ich schon durchgeguckt, aber für mein Problem findet sich dort leider keine Lösung. Es geht nur darum, wie ich die im Aufruf übergebene Variable (feldname) im Script einfüge.
Im Grunde geht es also nur um genau diesen Teil des Scriptes:
"+ feldname +" <<<<
Die dom struktur ist ansonsten ja richtig und wenn ich statt des o.g. strings direkt vpanrede oder vpanrede2 reinschreibe funktioniert auch alles.
script:
<script type="text/javascript">
function AuswahlReset (feldname) {
for (i = 0; i < "document.antrag."+ feldname +".length"; i++)
if ("document.antrag."+ feldname +".options[i].defaultSelected == true)
"document.antrag."+ feldname +".options[i].selected = true; }
</script>
Anzusprechende menus:
<select name="vpanrede" size="1" id="vpanrede">
<option value="">--</option>
<option value="w">Frau</option>
<option value="m">Herr</option>
</select>
<select name="vpanrede2" size="1" id="vpanrede2">
<option value="">--</option>
<option value="w">Frau</option>
<option value="m">Herr</option>
</select>
Funktionsaufruf:
<input type="button" name="loeschen" value=""
onClick="AuswahlReset('vpanrede'); ">
<input type="button" name="loeschen2" value=""
onClick="AuswahlReset('vpanrede2'); ">
danke, die Seite hatte ich schon durchgeguckt, aber für mein Problem findet sich dort leider keine Lösung. ...
Doch tut es. Du hast dir das Schema 4 genau angeschaut?
Struppi.
danke, die Seite hatte ich schon durchgeguckt, aber für mein Problem findet sich dort leider keine Lösung. ...
Doch tut es. Du hast dir das Schema 4 genau angeschaut?
stimmt, dachte es täte nichts zur Sache welche schreibweise ich wähle und hab daher die Beschreibung der einzelnen schreibweisen nur überflogen der letzte Satz zu Punkt 4 war dann der entscheidende Hinweis
Danke!
Hi,
function AuswahlReset (feldname) {
for (i = 0; i < "document.antrag."+ feldname +".length"; i++)
Hier setzt Du einen String zusammen. Du möchtest aber eine Objekt-Referenz erzeugen:
i < document.antrag.elements[feldname].length
Gruesse, Joachim
Hallo Joachim
i < document.antrag.elements[feldname].length
vielen Dank. Funktioniert jetzt auch wunderbar. Zusätzlich musste ich nur noch beim Funktionsaufruf statt
onclick="AuswahlReset(vpanrede)"
die Variable so angeben.
onClick="AuswahlReset('vpanrede');
Danke für die Hilfe.