Just nu i M3-nätverket
Gå till innehåll

Skapa en funktion som anropas från en annan funkti


inka6

Rekommendera Poster

Hej!

Jag har en dropdown [drop] med 5 olika val:

<select name="drop" size="1" class="inputbox" onChange="ToggleMonkeys7();">
<option selected></option>
<option value="x1@x.se"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">ett</font></option>
<option value="x1@x.se"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">två</font></option>
<option value="x1@x.se"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">tre</font></option>
<option value="x4@x.se"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">fyra</font></option>
<option value="x4@x.se"><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">fem</font></option>

 

Vid val ett och val tre i ovanstående dropdown ska nya fält visas från funktion ToggleMonkeys nedan. Alla övriga val i dropdownen ovan, då ska ett annat fält visas (funktion ToggelMonkeys2).

 

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
var MonkeyFields=new Array("rad1");
function ToggleMonkeys() {
for (i in MonkeyFields) {
o=document.getElementById(MonkeyFields[i]).style
o.display=(o.display=='')?'none':'';
}
}
//-->
</SCRIPT>

 

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
var MonkeyFields=new Array("rad 2");
function ToggleMonkeys2() {
for (i in MonkeyFields) {
o=document.getElementById(MonkeyFields[i]).style
o.display=(o.display=='')?'none':'';
}
}
//-->
</SCRIPT>

 

<script language="Javascript">
<!--
function ToggleMonkeys7() {
oSel=document.getElementById("drop");
sVal=oSel.options[oSel.selectedIndex].text;
eval((sVal=='ett' || 'tre' )?ToggleMonkeys();
}
//-->
</SCRIPT>

 

Kan man även lägga in i funktionen ToggleMonkeys7 (som behöver skrivas om helt eftersom den inte fungerar) så att alla övriga val i dropdownen, så ska ToggleMonkeys2 köras

 

Anropet i dropdownen drop ser ut så här:

onChange="ToggleMonkeys7();"

 

I den rad som innehåller det fält som inte är synligt från början (men ska bli synlig vid val ett och tre i dropdownen drop) står det:

div id="rad1" style="display:none;"

i själva tabellraden

 

och för det andra fältet står det då i denna tabellrad

div id="rad2" style="display:none;"

 

Hoppas någon förstår min fråga och kan skicka ett lietet förslag på kod så att detta fungerar.

 

Tack på förhand!

 

 

 

 

 

 

 

[inlägget ändrat 2006-11-09 15:09:33 av inka6]

Länk till kommentar
Dela på andra webbplatser

Du kan gör så här för att bestämma vilken funktion som ska köras:

function ToggleMonkeys7() {
oSel=document.getElementById("drop");
sVal=oSel.options[oSel.selectedIndex].text;
if(sVal=='ett' || sVal=='tre') {
return ToggleMonkeys();
}
else {
return ToggleMonkeys2();
}
}

Eller får bara ett av fälten vara synliga?

Sen har du ett mellanslag i (ta bort det):

var MonkeyFields=new Array("rad 2");

Döp sen den arrayn till MonkeyFields2, så där blir en skillnad på den olika arrayerna.

Ändra även arraynamnet i funktionen ToggleMonkeys2.

 

Länk till kommentar
Dela på andra webbplatser

Tack! :)

 

Vill att bara en rad (lager) i taget ska visas dvs när jag gör valet ett och tre i dropdownen så ska rad 1 synas, om man byter val i dropdownen till övriga val så ska rad 1 ej synas utan bara rad 2. Och gör man valet ett och tre igen så ska rad 1 synas och rad två döljas.

 

Hur skriver jag då?

 

Länk till kommentar
Dela på andra webbplatser

Om det bara handlar om att visa/dölja två olika lager så kan du ändra till:

function visadolj(strOptTxt) {
var arrDiv = new Array("rad1","rad2");
for(i in arrDiv) {
 document.getElementById(arrDiv[i]).style.display = 'none';
}
if(strOptTxt=="ett" || strOptTxt=="tre") {
 document.getElementById("rad1").style.display='';
}
else {
 document.getElementById("rad2").style.display='';
}
}

Gör anropet med:

onChange="visadolj(this.options[this.selectedIndex].text);"

[inlägget ändrat 2006-11-11 10:08:46 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...