Avatar billede dehdar Nybegynder
01. september 2009 - 16:28 Der er 4 kommentarer og
1 løsning

information fra javascript over i ajax backend fil

Hej, jeg sidder med et ret vanskeligt problem. Jeg opretter en controller (dropdownliste) runtime i en Ajax-backend fil x antal gange, afhængig af bruger input. Første gang bliver dropdownlisten dog oprettet i en anden fil (.c# fil).

Nok om det. Nu til problemet.

Når man har valgt hvad man vil i sine dropdownlister og trykker GEM, så bliver der kastet et event som jeg fanger i mit javascript.

Problemet er, at jeg i mit javacript ikke kan referere til min controller (dropdownlist) og aflæse dets status.

Jeg har forsøgt at give min controller et ID og referere til ID'et på følgende måde, hvilket virker fint. Men ligeså snart der bliver oprettet en controller til (en ny dropdownliste), så får jeg en exception, som fortæller mig, at getElementByID har brug for et objekt. Er der nogen som kan gennemskue hvordan jeg løser problemet?


parameters += "&decimalAnswers=" + (document.getElementById("ctl00_Content_AnswerDropDownList").selectedIndex == 1 ? true : false);
Avatar billede olebole Juniormester
01. september 2009 - 19:52 #1
<ole>

Med mindre de to kontroller har samme id, bør der ikke opstå problemer. Husk en id skal være unik i et HTML-dokument  ;o)

/mvh
</bole>
Avatar billede dehdar Nybegynder
02. september 2009 - 09:00 #2
Hej Ole, det forklarer hvorfor, at jeg altid henter information fra lige netop den første controller ved at referere til ID'en. Hvad kan jeg gøre for at referere til controllers som bliver oprettet runtime?

document.getElementById("ctl00_Content_AnswerDropDownList").selectedIndex
Avatar billede olebole Juniormester
02. september 2009 - 09:29 #3
Du opretter dem bare med forskellige ID'er
Avatar billede dehdar Nybegynder
02. september 2009 - 13:26 #4
du må gerne smide et svar, men jeg fandt en anden løsning.

parameters += "&decimalAnswers" +(paramCounter++)+ "=" + (currentRow.cells[2].getElementsByTagName("select")[0].selectedIndex == 1 ? true : false);

Jeg bruger getElementsByTagName("select") da jeg kun har et select element i den celle.
Avatar billede olebole Juniormester
02. september 2009 - 14:01 #5
Det kan du også godt gøre, men du skal under alle omstændigheder oprette kontrollerne med unikke ID'er - eller udelade disse. Unikke ID'er handler ikke kun om besværligheder omkring scripting. Det er et krav i HTML standarden  =)
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