Avatar billede ameq Nybegynder
16. september 2004 - 09:26 Der er 3 kommentarer og
1 løsning

Hjælp til script

Hej
Jeg har nogle dropdowns på en hjemmeside
alle de her dropdowns har de samme 4 felter men når de starter står der være sin ting i dem. Nu er mit problem så at jeg meget gerne ville være sikker på at de bliv med at være forskellige. Så hvis dropdown nr 1 bliver sat til nr 2 værdig skal nr 1 havde nr 2 gamle værdig

Hvordan skal man lige løste det?
Avatar billede roenving Novice
18. september 2004 - 18:36 #1
Sådan ?-)

<script language="javascript" type="text/javascript">
function testEns(sel){
  var sels = ["sel0","sel1","sel2","sel3"],used=new Array(),f=sel.form,ens=null;
  for(i=0;sels.length>i;i++)used[i] = false;
  for(i=0;sels.length>i;i++)used[f.elements[sels[i]].selectedIndex] = true;
  for(i=0;sels.length>i;i++){
    if(sel!=f.elements[sels[i]]&&sel.value==f.elements[sels[i]].value)ens=f.elements[sels[i]];
  }
  if(ens)for(i=0;used.length>i;i++)if(!used[i])ens.selectedIndex=i;
}
</script>

<form id="minForm" name="minForm">

<select name="sel0" id="sel0" onchange="testEns(this);">
    <option value="1" selected>1<br>
    <option value="2">2<br>
    <option value="3">3<br>
    <option value="4">4<br>
</select>
<br>
<br>
<select name="sel1" id="sel1" onchange="testEns(this);">
    <option value="1">1<br>
    <option value="2" selected>2<br>
    <option value="3">3<br>
    <option value="4">4<br>
</select>
<br>
<br>
<select name="sel2" id="sel2" onchange="testEns(this);">
    <option value="1">1<br>
    <option value="2">2<br>
    <option value="3" selected>3<br>
    <option value="4">4<br>
</select>
<br>
<br>
<select name="sel3" id="sel3" onchange="testEns(this);">
    <option value="1">1<br>
    <option value="2">2<br>
    <option value="3">3<br>
    <option value="4" selected>4<br>
</select>

</form>
Avatar billede ameq Nybegynder
19. september 2004 - 08:08 #2
DET ER ALT FOR NICE!
tak jeg har sidet og brugt så mange timer på det der også laver du det bare =) Hvordan gør du det? =)

Det enste der manger er nu bare en random funktion, jeg ved ikke hvor svær den er at lave eller om den hører under der her spm. Eller om jeg bare skulle lave den selv på server siden?
Avatar billede roenving Novice
19. september 2004 - 15:59 #3
Du vil sikkert kunne lave det ligeså nemt i et server-side script, men f.eks.

<script language="javascript" type="text/javascript">
var sels = ["sel0","sel1","sel2","sel3"];
function setSels(){
  f = document.minForm;
  s = new Array(),r = new Array();
  for(i=0;sels.length>i;i++){
    s[i] = f.elements[sels[i]];
    r[i] = [Math.random()*sels.length,i];
  }
  r.sort();
  for(i=0;r.length>i;i++){
    s[i].selectedIndex = r[i][1];
  }
}
window.onload = setSels;
function testEns(sel){
  var used=new Array(),f=sel.form,ens=null;
  for(i=0;sels.length>i;i++)used[i] = false;
  for(i=0;sels.length>i;i++)used[f.elements[sels[i]].selectedIndex] = true;
  for(i=0;sels.length>i;i++){
    if(sel!=f.elements[sels[i]]&&sel.value==f.elements[sels[i]].value)ens=f.elements[sels[i]];
  }
  if(ens)for(i=0;used.length>i;i++)if(!used[i])ens.selectedIndex=i;
}
</script>

<form id="minForm" name="minForm">

<select name="sel0" id="sel0" onchange="testEns(this);">
    <option value="1" selected>1<br>
    <option value="2">2<br>
    <option value="3">3<br>
    <option value="4">4<br>
</select>
<br>
<br>
<select name="sel1" id="sel1" onchange="testEns(this);">
    <option value="1">1<br>
    <option value="2" selected>2<br>
    <option value="3">3<br>
    <option value="4">4<br>
</select>
<br>
<br>
<select name="sel2" id="sel2" onchange="testEns(this);">
    <option value="1">1<br>
    <option value="2">2<br>
    <option value="3" selected>3<br>
    <option value="4">4<br>
</select>
<br>
<br>
<select name="sel3" id="sel3" onchange="testEns(this);">
    <option value="1">1<br>
    <option value="2">2<br>
    <option value="3">3<br>
    <option value="4" selected>4<br>
</select>

</form>

-- forøvrigt er antallet af checkboxe ligegyldigt i ovenstående konstruktion, men du vil nok opleve at der er en lille forsinkelse, hvis du kommer op i mange selectboxe med mange valg-muligheder ...

-- og velbekomme '-)
Avatar billede roenving Novice
20. september 2004 - 17:06 #4
Tak for point ;~}
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