Avatar billede kagge Nybegynder
01. oktober 2003 - 12:31 Der er 9 kommentarer og
1 løsning

Onchange når værdi er selected på forhånd

Jeg har nedenstående select-menu + funktion som gør at hvis man skifter værdi i menuen, så viser eller fjerner funktionen nogle tilhørende felter (virker fint):

function select_kvalifikation1() {
  ty = document.registrering.kvalifikation1.value

  if (ty == "") {
      document.registrering.kvalifikation1startdato.value = '';
      document.registrering.kvalifikation1slutdato.value = '';
      document.all.id1.style.display = 'none';
      document.all.id2.style.display = 'none';
  }
  else {
      document.all.id1.style.display = 'block';
      document.all.id2.style.display = 'block';
      document.all.id11.style.display = 'block';
      document.all.id12.style.display = 'block';


  }
}



<SELECT NAME="kvalifikation1" onChange="select_kvalifikation1(this.selectedIndex)" >
<OPTION></OPTION>
<%
Dim recordSet1
Dim strSQL1

set recordSet1 = server.CreateObject("ADODB.Recordset")

strSQL1 = "SELECT Kvalid, Kvalifikation FROM Kva_stamdata ORDER BY Kvalifikation"
set recordSet1 = forbindelse.Execute (strSQL1)

do until recordSet1.eof

If kvalifikation(0) = recordSet1("Kvalid") Then

Response.Write "<option value=" & recordSet1("Kvalid") & " selected>" & recordSet1("Kvalifikation") & "</option>"
Else
Response.Write "<option value=" & recordSet1("Kvalid") & ">" & recordSet1("Kvalifikation") & "</option>"

  end if
recordSet1.movenext
loop
recordSet1.Close
Set recordSet1 = Nothing

%>
</SELECT>



Men hvordan gør jeg når select-menuen fra starten af (når siden kaldes) allerede har selected en værdi, så kommer det tilhørende visningsfelt ikke frem? Det er selvfølgelig fordi man ikke har lavet en Onchange i menuen som kalder funktionen. Men hvordan løses dette problem?
Avatar billede websmith Nybegynder
01. oktober 2003 - 12:40 #1
Hvad med bare at kalde din fuktion når siden loader.

Dvs. Nederst på din side tilføjer du:

<script>
select_kvalifikation1(0);
</script>
Avatar billede websmith Nybegynder
01. oktober 2003 - 12:41 #2
Evt. med en efterfølgende:

document.registrering.kvalifikation1.selectedIndex=0;
Avatar billede kagge Nybegynder
01. oktober 2003 - 12:46 #3
Ikke forstået...

Øverst på siden har jeg jo mit <SCRIPT LANGUAGE=JAVASCRIPT></SCRIPT>
hvorfor select_kvalifikation1(0)?

Kan du lige forklare lidt nærmere?
Avatar billede websmith Nybegynder
01. oktober 2003 - 12:49 #4
Fordi når du kalder select_kvalifikation(0)

Så emulerer du at brugeren har valgt den første mulighed i din select box.

Grunden til at det skal være nederst på siden, er fordi at der kan være problemer med at javascript bliver kørt før hele siden er loadet, og så kan den ikke finde dine felter som skal skjules. Når du lægger koden med select_kvalifikation(0) nederst, så er alle felter blevet loadet
Avatar billede nikolajdu Nybegynder
01. oktober 2003 - 12:50 #5
ty = document.registrering.kvalifikation1.options[document.registrering.kvalifikation1.selectedIndex].value

Og så bare :

<body onload="select_kvalifikation1()">
Avatar billede nikolajdu Nybegynder
01. oktober 2003 - 12:55 #6
ty = document.registrering.kvalifikation1.options[document.registrering.kvalifikation1.selectedIndex].selectedIndex
Avatar billede nikolajdu Nybegynder
01. oktober 2003 - 12:55 #7
selvfølgelig...
Avatar billede kagge Nybegynder
01. oktober 2003 - 12:59 #8
=> nikolajdu

jeg kan ikke så godt sætte en onload på bodyen da jeg har ca. 20 funktioner der skal kaldes

Har indsat dette nederst på siden og det ser ud til at virke.

<script type="text/javascript">
<!--

select_kvalifikation1();
select_kvalifikation2();
osv...


//-->
</script>

Takker for hjælpen begge 2 :)
Avatar billede roenving Novice
01. oktober 2003 - 18:58 #9
-- hvis du har 20 funktioner som skal kaldes onload, så lægger du bare allesammen ind i een anden funktion, som du så kalder ...
Avatar billede kagge Nybegynder
02. oktober 2003 - 07:04 #10
nå jaa selvfølgelig....
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Analytiker til Security Operationscenter i Cyberdivisionen Hvidovre

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Politiets Efterretningstjeneste

IT-løsningsarkitekt i PET