Avatar billede nikolajdu Nybegynder
21. april 2001 - 21:52 Der er 16 kommentarer og
1 løsning

Suk, jeg er træt

Jeg har tømmermænd og er overhovedet ikke i stand til at se hvad jeg gør galt her.

<head>
<script language=\"JavaScript\">

function antal(formy, navn, pris) {
        var hvorMange=formy.navn.selectedIndex;
        var navnIalt = navn + \'Ialt\';
        document.formy.navnIalt.value = formy.navn.options[hvorMange].value*pris;
}
</SCRIPT>
</head>

<body>
      <form name=\"form1\" target=\"main\" method=\"POST\" action=\"\">

<select name=\"test1\" onChange=\"antal(this.form, this.name, 256)\" size=1>
        <option value=\"0\">0
        <option value=\"1\">1
        <option value=\"2\">2
        <option value=\"3\">3
        <option value=\"4\">4
</select>

Ialt <input type=\"text\" name=\"test1Ialt\" size=\"5\" value=\"0\" disable readonly>

    <p>   

<select name=\"test2\" size=1 onChange=\"antal(this.form, this.name, 230)\">
        <option>4</option>
        <option>3</option>
        <option>2</option>
        <option>1</option>
        <option selected>0</option>
</select>

Ialt <input type=\"text\" name=\"test2Ialt\" size=\"5\" value=\"0\" disable readonly>
 
      </form>
</body>
</html>

Jeg får fejl. navn.selectedIndex er Null eller ikke et objekt.

/Nikolaj
Avatar billede olebole Juniormester
21. april 2001 - 22:09 #1
<ole>
Ehhhhhh..... \'form1\' og \'formy\' er vel ikke helt det samme  ;oD
/mvh
</bole>
Avatar billede nikolajdu Nybegynder
21. april 2001 - 22:16 #2
Baah, det er mig der har pastet den forkerte version. I den \"rigtige\" er det rettet til name=\"formy\".
Avatar billede olebole Juniormester
21. april 2001 - 22:35 #3
Det er mig, der læser som en torsk igen...! :(
Skriv scriptet om til:

function antal(formy, navn, pris) {
        var hvorMange=formy[navn].selectedIndex;
        var navnIalt = navn + \'Ialt\';
        formy[navnIalt].value = formy[navn].options[hvorMange].value*pris;
}

...og så sæt de values på den anden select, du bruger i script\'et ;)
/mvh
Avatar billede nikolajdu Nybegynder
21. april 2001 - 22:36 #4
Men det virker altså stadig ikke.

Det jeg vil er altså at opdatere det til drop-downnen hørende Ialt-felt.
Avatar billede nikolajdu Nybegynder
21. april 2001 - 22:38 #5
Mit sidste indlæg var før du havde pastet.

Anyway nu opdaterer den korrekt test1Ialt, men ikke nr 2
Avatar billede olebole Juniormester
21. april 2001 - 22:40 #6
Jo, hvis du husker at skrive values i den dropdown...det har du ikke gjort i eksemplet foroven. Values i dibe options, altså ;)
Avatar billede olebole Juniormester
21. april 2001 - 22:44 #7
I denne linie:
  document.formy.navnIalt.value = formy.navn.options[hvorMange].value*pris;
forudsættes det, at en option - \'formy.navn.options[hvorMange]\' - har en værdi...det har den kun, hvis du har skrevet en.
Avatar billede nikolajdu Nybegynder
21. april 2001 - 22:48 #8
Damn jeg er dum. *gg*

Selvfølgelig skulle der have været values i feltet.

Anyway tak og go´nat du.
Avatar billede jakoba Nybegynder
21. april 2001 - 22:56 #9
jeg bryder mig ikke om:
        var navnIalt = navn + \'Ialt\';
        document.formy.navnIalt.value = formy.navn.options[hvorMange].value*pris;

burde der ikke stå:
        var navnIalt = navn + \'Ialt\';
        document.formy[navnIalt].value = formy.navn.options[hvorMange].value*pris;

eller kan javascript virkelig trække en variabel ind i .-adressesseringen på den måde?

mvh JakobA

Avatar billede olebole Juniormester
21. april 2001 - 23:03 #10
Nej, Jakob...du har kaldt med det rigtige objekt, ved \'this.form\' på onchange-event\'en. Derfor ligger objektet - og ikke formnavnet - i \'formy\'. Derfor skal du bare sige \'fomy\' og ikke \'document.formy\' ;)
Desuden kalder jeg netop med array-notation i mit eksempel.
/mvh
Avatar billede olebole Juniormester
21. april 2001 - 23:04 #11
\'Desuden buger jeg netop array-notation i mit eksempel.\'...burde der vel have stået ;)
Avatar billede nikolajdu Nybegynder
21. april 2001 - 23:26 #12
Udover jeg ikke helt har forstået præcist hvad formy[navnIalt] betyder så har jeg lige et tillægsspørgsmål.

Hvis i kigger kan i se at jeg har brugt både disable og readonly. Tog begge med som helgardering. Testede det i IE 5.5. og Netscape 4.73 og 6.01. Kan ikke huske hvad der passede til hvad, men er det virkeligt nødvendigt med begge??
Avatar billede jakoba Nybegynder
22. april 2001 - 04:49 #13
ikke nødvendigt. begge attributter er i html4 standarden og begge forhindrer brugeren i at skrive noget der. Men der er stadig mange pre-HTML4 browsere så jeg ville nok erstatte  readonly  med en  onfocus=\"this.blur()\"  event der er lidt mere baguskompatibel.

notationen
  arraynavn[0]
kender du urvivlsomt allerede, den mindre kendte er at nar du har et array af objects og de objekter indeholder en navn variabel kan man adressere det objekt ved at bruge værdien i navn variablen som index i arrayet.

så
document.forms[0]        peger på din form formy (tidligere form1)
document.forms[\"formy\"]  peger også på formen
document.forms.formy      peger endnu engang på formen

.-notationen er en tredie måde at slå op i arrayet der kun kan bruges når man ved præcis hvad navnet er og kan skrive bogstaverne i det.
Desværre tillader brovserne at man udelader arraynavnet ( forms ) for diverse standad arrays og det forplumrer billedet noget (men sparer en del skriveri) du kan skrive:
  document.formy.test1.options[hvorMange].value
men det betyder i virkeligheden:
  document.forms.formy.elements.test1.options[hvormange].value

der er en fjerde måde:
document.forms.0          i nogen javascript versioner giver det igen igen en
                          pegepind til den form (men den virker ikke altid)

mvh JakobA
Avatar billede nikolajdu Nybegynder
22. april 2001 - 04:52 #14
Tak for god info. Er du klar på et andet Array spørgsmål nu? For så opretter jeg det lige. Er gået lidt sur i noget mere.
Avatar billede nikolajdu Nybegynder
22. april 2001 - 05:01 #15
Næh ikke noget. Jeg fandt ud af det. Manglede en eval(blabla)
Avatar billede jakoba Nybegynder
22. april 2001 - 05:08 #16
Nukolaidu!  Du er overtræt.  Kan du SÅ se at komme iseng. :-))
Avatar billede nikolajdu Nybegynder
22. april 2001 - 05:12 #17
Du har helt ret.
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