Avatar billede deamill Nybegynder
31. marts 2004 - 07:18 Der er 8 kommentarer og
1 løsning

oncreate funktion?

hej,

jeg har f.eks. en selectvbox, den har en metode som hedder onclick. Hvis jeg nu gerne vil have der skal ske noget on create, har den så sådan en metode?

/deamill
Avatar billede roenving Novice
31. marts 2004 - 07:22 #1
Næh, men hvad er det du vil ?-)
Avatar billede deamill Nybegynder
31. marts 2004 - 07:30 #2
hejsa, det er fordi jeg bruger den clone du lavede til mig, til at indsætte elementer i mine selectboxe. Men jeg vil gerne have at de automatisk bliver indsat når selectboxen bliver lavet. Som der er nu, bliver elementerne jo først insat "onclick"!

Forstår du hvad jeg mener?
Avatar billede roenving Novice
31. marts 2004 - 07:34 #3
Nej, den du lige godkendte laves da før du kan se dokumentet !-)
Avatar billede deamill Nybegynder
31. marts 2004 - 07:38 #4
ja, det er lidt svært at forklare. Det jeg gør er, at i den første select på siden insættes elementerne fra en database vha. recordset, men det tager alt for lang tid at gennemløbbe det recordset for hver selectbox. Så derfor bruges din clone til at copiere elementerne over i resten af select boxene. Men nu sker denne clone jo først når brugerne trykker på selectboxen... Jeg vil gerne have at det gøres automatisk!?
Avatar billede roenving Novice
31. marts 2004 - 07:40 #5
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Klon selectbox</title>
<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/480892,http://www.eksperten.dk/spm/484034">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
function cloneOptions(fra,til){
  var sel = document.getElementById(fra),newOpt;
  var elm = document.getElementById(til);
  elm.style.width = sel.offsetWidth + 'px';
  for(i=0;sel.length>i;i++){
    opt = sel.options[i];
    newOpt = document.createElement('OPTION');
    elm.appendChild(newOpt);
    newOpt.value = opt.value;
    newOpt.text = opt.text;
    newOpt.selected = opt.selected;   
  }
}

</script>

</head>
<body onload="cloneOptions('a','b');">
<form id="minForm" name="minForm">
<select name="a" id="a" onchange="">
    <option value="">-- Vælg her --<br>
    <option value="1">1<br>
    <option value="2">2<br>
    <option value="3" selected>3<br>
</select>
<br>
<br>
<select name="b" id="b">
</select>
</form>
</body>
</html>

-- og jeg laver den lige om til mange ...
Avatar billede roenving Novice
31. marts 2004 - 07:47 #6
<script language="javascript" type="text/javascript">
function cloneOptions(fra,til){
  var args = cloneOptions.arguments;
  var sel = document.getElementById(fra),newOpt;
  var elm = new Array();
  for(i=1;args.length>i;i++){
    elm[i] = document.getElementById(args[i]);
    elm[i].style.width = sel.offsetWidth + 'px';
  }
  for(i=0;sel.length>i;i++){
    opt = sel.options[i];
    for(j=1;args.length>j;j++){
      newOpt = document.createElement('OPTION');
      elm[j].appendChild(newOpt);
      newOpt.value = opt.value;
      newOpt.text = opt.text;
      newOpt.selected = opt.selected;
    }
  }
}

</script>

</head>
<body onload="cloneOptions('a','b','c','d','e');">
<form id="minForm" name="minForm">
<select name="a" id="a" onchange="">
    <option value="">-- Vælg her --<br>
    <option value="1">1<br>
    <option value="2">2<br>
    <option value="3" selected>3<br>
</select>
<br>
<br>
<select name="b" id="b">
</select>
<br>
<br>
<select name="c" id="c">
</select>
<br>
<br>
<select name="d" id="d">
</select>
<br>
<br>
<select name="e" id="e">
</select>
<br>
<br>
<select name="f" id="f">
</select>
<br>
<br>
<select name="g" id="g">
</select>
</form>
</body>
Avatar billede roenving Novice
31. marts 2004 - 07:55 #7
-- som du vil kunne se, har jeg kun indstillet den i kaldet til at ordne de første fire, men det er mest for at vise, at du kan sætte et vilkårligt antal på !-)

For du kan bare sætte så mange ind du vil, men husk at bruge id også:

<body onload="cloneOptions('a','b','c','f','g');"><!-- Vil bare springe d og e over -->

-- den vil også, som du ser klone selected-value, så den linje skal udkommenteres, hvis du ikke vil have den !o]

Man kunne også have valgt at bruge en mere direkte kloning, nemlig ELEMENT.cloneNode(true), men der skal man så have styr på hvordan og hvor de skal indsættes, så ovenstående er mere overskuelig, når de skal sættes forskellige 'tilfældige' steder i dokumentet ...
Avatar billede deamill Nybegynder
31. marts 2004 - 08:01 #8
ok, takker :-)

husk lige at svare!
Avatar billede roenving Novice
31. marts 2004 - 08:02 #9
Velbekomme '-)
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