Avatar billede skywalkerdk Nybegynder
29. august 2002 - 15:48 Der er 5 kommentarer og
1 løsning

Funktion med variabel

Hvorfor kan jeg ikke sætte strA til at være "A1","A2","A3" osv.?..

Det er et felt i en formular jeg skal have aflæst.



function Substitute(strImg){
var strA = document.getElementByName('A'+strImg);
document.images['Img'+strImg].src="img/colors/"+document['form'+strImg].strA.value+".gif";
                }
Avatar billede jakoba Nybegynder
29. august 2002 - 16:18 #1
det du gør med sætningen
    var strA = document.getElementByName('A'+strImg);
er at gøre  strA til en pegepind til det html-element der har id "A"+strimg

for at sætte strA til det navn skriver du:
    var strA = "A" + strImg;

men under alle omstændigheder vil adressen
    document['form'+strImg].strA.value+".gif";
gå galt. du kan ikke umiddelbart bruge variabler når du sammensætter en .-adresse.
det skal være:
    document['form'+strImg].elements[strA].value+".gif";
så strA bruges til at slå op i formens array af elementer.

mvh JakobA
Avatar billede skywalkerdk Nybegynder
30. august 2002 - 11:07 #2
Det virker fint i den første formular, men de to efterfølgende virker det ikke i..!?
Hvis den ".elements" virker så burde den jo henvise til "A2" og "A3", men den siger bare "'document[...].elements' is not an object."..

Source vedhæftet:

<html>
<head>
<link REL=STYLESHEET type="text/css" href="style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>w w w . D o b e D o g z . c o m ®</title>
        <SCRIPT LANGUAGE="JavaScript" SRC="DynamicOptionList.js"></SCRIPT>
        <SCRIPT LANGUAGE="JavaScript">
var listB1 = new DynamicOptionList('B1','A1');var listB2 = new DynamicOptionList('B2','A2');var listB3 = new DynamicOptionList('B3','A3');
        function init(strID) {
            var theform = document.forms[0];
            listB1.init(theform);listB2.init(theform);listB3.init(theform);
                }
    </script>
    <script language="JavaScript1.2">
    function Substitute(strImg){
        document.images['Img'+strImg].src="img/colors/"+document['form'+strImg].elements['A'+strImg].value+".gif";
        }
    </script>

</head>

<body background="mainbottom.jpg" bgproperties=fixed>


<script language="JavaScript">
listB1.addOptions('black','Medium','6');
listB1.setDefaultOption('black','6');
listB1.addOptions('216','Small','5','Medium','6');
listB1.setDefaultOption('216','6');
listB1.addOptions('2695','Large','7','X-Large','8','XX-Large','9');
listB1.setDefaultOption('2695','6');
listB1.addOptions('186','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB1.setDefaultOption('186','6');
listB1.addOptions('280','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB1.setDefaultOption('280','6');
listB1.addOptions('432','Small','5');
listB1.setDefaultOption('432','6');
       
</script>

<FORM name="form1">
<img src="img/colors/blank.gif" name="Img1" height=20 width=20>
<TABLE BORDER="1" width=400>
<TR>
    <TH>Farve</TH>
    <TH>Størrelse</TH>
</TR>
<TR>
    <TD width=200>
        <SELECT NAME="A1" onChange="listB1.populate(1);Substitute('1')">
<option value='black'>Black</option>
<option value='216'>Bordeaux</option>
<option value='2695'>Purple</option>
<option value='186'>Red</option>
<option value='280'>Royal Blue</option>
<option value='432'>Solid Grey</option>

        </SELECT>
    </TD>
    <TD width=200>
        <SELECT NAME="B1">
            <SCRIPT LANGUAGE="JavaScript">listB1.printOptions(1)</SCRIPT>
        </SELECT>
    </TD>
</TR>
</TABLE>


<script language="JavaScript">
listB2.addOptions('black','Medium','6','XXXL-Large','10');
listB2.setDefaultOption('black','6');
listB2.addOptions('216','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('216','6');
listB2.addOptions('3302','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('3302','6');
listB2.addOptions('4525','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9');
listB2.setDefaultOption('4525','6');
listB2.addOptions('347','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('347','6');
listB2.addOptions('2716','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9');
listB2.setDefaultOption('2716','6');
listB2.addOptions('snowmel','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('snowmel','6');
listB2.addOptions('darkmel','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('darkmel','6');
listB2.addOptions('2767','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('2767','6');
listB2.addOptions('151','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9');
listB2.setDefaultOption('151','6');
listB2.addOptions('2695','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9');
listB2.setDefaultOption('2695','6');
listB2.addOptions('186','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('186','6');
listB2.addOptions('280','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('280','6');
listB2.addOptions('432','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('432','6');
listB2.addOptions('white','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('white','6');
listB2.addOptions('116','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('116','6');
       
</script>

<FORM name="form2">
<img src="img/colors/blank.gif" name="Img2" height=20 width=20>
<TABLE BORDER="1" width=400>
<TR>
    <TH>Farve</TH>
    <TH>Størrelse</TH>
</TR>
<TR>
    <TD width=200>
        <SELECT NAME="A2" onChange="listB2.populate(2);Substitute('2')">
<option value='black'>Black</option>
<option value='216'>Bordeaux</option>
<option value='3302'>Bottle Green</option>
<option value='4525'>Khaki</option>
<option value='347'>Kelly Green</option>
<option value='2716'>Lavender</option>
<option value='snowmel'>Melange, Snow</option>
<option value='darkmel'>Melange, Dark</option>
<option value='2767'>Navy</option>
<option value='151'>Orange</option>
<option value='2695'>Purple</option>
<option value='186'>Red</option>
<option value='280'>Royal Blue</option>
<option value='432'>Solid Grey</option>
<option value='white'>White</option>
<option value='116'>Yellow</option>

        </SELECT>
    </TD>
    <TD width=200>
        <SELECT NAME="B2">
            <SCRIPT LANGUAGE="JavaScript">listB2.printOptions(2)</SCRIPT>
        </SELECT>
    </TD>
</TR>
</TABLE>


<script language="JavaScript">
listB3.addOptions('black','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB3.setDefaultOption('black','6');
listB3.addOptions('3302','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9');
listB3.setDefaultOption('3302','6');
listB3.addOptions('snowmel','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9');
listB3.setDefaultOption('snowmel','6');
listB3.addOptions('darkmel','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB3.setDefaultOption('darkmel','6');
listB3.addOptions('2767','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB3.setDefaultOption('2767','6');
       
</script>

<FORM name="form3">
<img src="img/colors/blank.gif" name="Img3" height=20 width=20>
<TABLE BORDER="1" width=400>
<TR>
    <TH>Farve</TH>
    <TH>Størrelse</TH>
</TR>
<TR>
    <TD width=200>
        <SELECT NAME="A3" onChange="listB3.populate(3);Substitute('3')">
<option value='black'>Black</option>
<option value='3302'>Bottle Green</option>
<option value='snowmel'>Melange, Snow</option>
<option value='darkmel'>Melange, Dark</option>
<option value='2767'>Navy</option>

        </SELECT>
    </TD>
    <TD width=200>
        <SELECT NAME="B3">
            <SCRIPT LANGUAGE="JavaScript">listB3.printOptions(3)</SCRIPT>
        </SELECT>
    </TD>
</TR>
</TABLE>

<script language="JavaScript">
    init();
</script>
</body>


   
</html>
Avatar billede skywalkerdk Nybegynder
30. august 2002 - 11:17 #3
probleme løst.

Hvis jeg putter alt i en og samme form virker det efter hensigten.

sådan ser den fungerende source ud:

<html>
<head>
<link REL=STYLESHEET type="text/css" href="style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>w w w . D o b e D o g z . c o m ®</title>
        <SCRIPT LANGUAGE="JavaScript" SRC="DynamicOptionList.js"></SCRIPT>
        <SCRIPT LANGUAGE="JavaScript">
var listB1 = new DynamicOptionList('B1','A1');var listB2 = new DynamicOptionList('B2','A2');var listB3 = new DynamicOptionList('B3','A3');
        function init(strID) {
            var theform = document.forms[0];
listB1.init(theform);listB2.init(theform);listB3.init(theform);
                }
        </script>
        <script language="JavaScript1.2">
            function Substitute(strImg){
                document.images['Img'+strImg].src="img/colors/"+document['form1'].elements['A'+strImg].value+".gif";
                }
        </script>

</head>

<body background="mainbottom.jpg" bgproperties=fixed>


<script language="JavaScript">
listB1.addOptions('black','Medium','6');
listB1.setDefaultOption('black','6');
listB1.addOptions('216','Small','5','Medium','6');
listB1.setDefaultOption('216','6');
listB1.addOptions('2695','Large','7','X-Large','8','XX-Large','9');
listB1.setDefaultOption('2695','6');
listB1.addOptions('186','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB1.setDefaultOption('186','6');
listB1.addOptions('280','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB1.setDefaultOption('280','6');
listB1.addOptions('432','Small','5');
listB1.setDefaultOption('432','6');
       
</script>

<FORM name="form1">
<img src="img/colors/blank.gif" name="Img1" height=20 width=20>
<TABLE BORDER="1" width=400>
<TR>
    <TH>Farve</TH>
    <TH>Størrelse</TH>
</TR>
<TR>
    <TD width=200>
        <SELECT NAME="A1" onChange="listB1.populate(1);Substitute('1')">
<option value='black'>Black</option>
<option value='216'>Bordeaux</option>
<option value='2695'>Purple</option>
<option value='186'>Red</option>
<option value='280'>Royal Blue</option>
<option value='432'>Solid Grey</option>

        </SELECT>
    </TD>
    <TD width=200>
        <SELECT NAME="B1">
            <SCRIPT LANGUAGE="JavaScript">listB1.printOptions(1)</SCRIPT>
        </SELECT>
    </TD>
</TR>
</TABLE>



<script language="JavaScript">
listB2.addOptions('black','Medium','6','XXXL-Large','10');
listB2.setDefaultOption('black','6');
listB2.addOptions('216','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('216','6');
listB2.addOptions('3302','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('3302','6');
listB2.addOptions('4525','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9');
listB2.setDefaultOption('4525','6');
listB2.addOptions('347','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('347','6');
listB2.addOptions('2716','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9');
listB2.setDefaultOption('2716','6');
listB2.addOptions('snowmel','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('snowmel','6');
listB2.addOptions('darkmel','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('darkmel','6');
listB2.addOptions('2767','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('2767','6');
listB2.addOptions('151','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9');
listB2.setDefaultOption('151','6');
listB2.addOptions('2695','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9');
listB2.setDefaultOption('2695','6');
listB2.addOptions('186','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('186','6');
listB2.addOptions('280','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('280','6');
listB2.addOptions('432','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('432','6');
listB2.addOptions('white','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('white','6');
listB2.addOptions('116','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB2.setDefaultOption('116','6');
       
</script>

<FORM name="form2">
<img src="img/colors/blank.gif" name="Img2" height=20 width=20>
<TABLE BORDER="1" width=400>
<TR>
    <TH>Farve</TH>
    <TH>Størrelse</TH>
</TR>
<TR>
    <TD width=200>
        <SELECT NAME="A2" onChange="listB2.populate(2);Substitute('2')">
<option value='black'>Black</option>
<option value='216'>Bordeaux</option>
<option value='3302'>Bottle Green</option>
<option value='4525'>Khaki</option>
<option value='347'>Kelly Green</option>
<option value='2716'>Lavender</option>
<option value='snowmel'>Melange, Snow</option>
<option value='darkmel'>Melange, Dark</option>
<option value='2767'>Navy</option>
<option value='151'>Orange</option>
<option value='2695'>Purple</option>
<option value='186'>Red</option>
<option value='280'>Royal Blue</option>
<option value='432'>Solid Grey</option>
<option value='white'>White</option>
<option value='116'>Yellow</option>

        </SELECT>
    </TD>
    <TD width=200>
        <SELECT NAME="B2">
            <SCRIPT LANGUAGE="JavaScript">listB2.printOptions(2)</SCRIPT>
        </SELECT>
    </TD>
</TR>
</TABLE>



<script language="JavaScript">
listB3.addOptions('black','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB3.setDefaultOption('black','6');
listB3.addOptions('3302','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9');
listB3.setDefaultOption('3302','6');
listB3.addOptions('snowmel','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9');
listB3.setDefaultOption('snowmel','6');
listB3.addOptions('darkmel','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB3.setDefaultOption('darkmel','6');
listB3.addOptions('2767','Small','5','Medium','6','Large','7','X-Large','8','XX-Large','9','XXXL-Large','10');
listB3.setDefaultOption('2767','6');
       
</script>

<FORM name="form3">
<img src="img/colors/blank.gif" name="Img3" height=20 width=20>
<TABLE BORDER="1" width=400>
<TR>
    <TH>Farve</TH>
    <TH>Størrelse</TH>
</TR>
<TR>
    <TD width=200>
        <SELECT NAME="A3" onChange="listB3.populate(3);Substitute('3')">
<option value='black'>Black</option>
<option value='3302'>Bottle Green</option>
<option value='snowmel'>Melange, Snow</option>
<option value='darkmel'>Melange, Dark</option>
<option value='2767'>Navy</option>

        </SELECT>
    </TD>
    <TD width=200>
        <SELECT NAME="B3">
            <SCRIPT LANGUAGE="JavaScript">listB3.printOptions(3)</SCRIPT>
        </SELECT>
    </TD>
</TR>
</TABLE>

</form>
<script language="JavaScript">
    init();
</script>
</body>


   
</html>
Avatar billede skywalkerdk Nybegynder
30. august 2002 - 11:18 #4
vil du have point JacobA?..
Avatar billede jakoba Nybegynder
30. august 2002 - 11:48 #5
næe, der er altfor mang sat på her.
plus jeg er ikke rigtig glad for den løsning. det burde søreme virke med flere forms i siden
Avatar billede skywalkerdk Nybegynder
04. september 2002 - 16:00 #6
p
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester