Avatar billede mikkel_breum Nybegynder
05. januar 2002 - 19:38 Der er 3 kommentarer og
1 løsning

scripting multiple list selections

Hejsa!

Jeg har lavet følgende kode som kan ses live på adressen www.jooze.dk/test/test.html

når man trykker på knappen \'vælg alle\' vælger den nummer 2 på listen (index[1]) det er så langt jeg selv har kunnet finde ud af det. Men jeg vil gerne kunne definere en række elementer der skal selected. Det må vel være muligt siden der er en multiple selection liste.

Hvordan kan scriptet lavet om således at jeg kan definere fx index 0 og 2 eller at alle elementer skal selectes??

min foreløbige kode ser sådan ud:


<html>
<head>
<script language=\"JavaScript\">
<!--

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf(\"?\"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function selectAll() {
  var l=MM_findObj(\"listen\");
  l.selectedIndex=1;
}

//-->
</script>
</head>

<body bgcolor=\"#FFFFFF\" text=\"#000000\">
<form name=\"form1\" method=\"post\" action=\"\">
  <select name=\"listen\" size=\"6\" multiple>
    <option value=\'1\'>1</option>
    <option value=\'2\'>2</option>
    <option value=\'3\'>3</option>
    <option value=\'4\'>4</option>
  </select>
  <input type=\"button\" name=\"Button\" value=\"v&aelig;lg alle\" onClick=\"selectAll();\">
</form>


</body>
</html>
Avatar billede jakoba Nybegynder
05. januar 2002 - 19:50 #1
For at sætte multiple må du selecte de enkelte options:

<html> <head> <title>test</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<script language=\"JavaScript\"> <!--

function selectAll() {
  var liso=document.form1.listen.options;
  for (var i=0; i<liso.length; i++ ) liso[i].selected = true;
}

//--> </script> </head> 
<body bgcolor=\"#FFFFFF\" text=\"#000000\">
<form name=\"form1\" method=\"post\" action=\"\">
<select name=\"listen\" size=\"6\" multiple>
<option value=\'1\'>1</option>
<option value=\'2\'>2</option>
<option value=\'3\'>3</option>
<option value=\'4\'>4</option>
</select>
<input type=\"button\" name=\"Button\" value=\"v&aelig;lg alle\" onClick=\"selectAll();\">
</form> 

<!-- WebWriter AutoDato -->Opdateret: 5.1.2002<!-- WW -->
</body>
</html>

mvh JakobA
Avatar billede mikkel_breum Nybegynder
05. januar 2002 - 19:59 #2
ok det var lige den syntax jeg ikke kendte..

vedr: denne linie:
var liso=document.form1.listen.options;

kan den erstatte MM_findObj mht. crossbrowser kompatibilitet??
Avatar billede jakoba Nybegynder
05. januar 2002 - 20:21 #3
Nej. Det ville blive:
  var l=MM_findObj(\"listen\");
  var liso = l.options;

tak for pts

mvh JakobA
Avatar billede jakoba Nybegynder
05. januar 2002 - 20:26 #4
Ups. det var da vist ikke spørgsmålet.
begge metoder virker i alle de normale browsere.
min enlinie medtode vil dog kun virke hvis fordi vi i forvejen ved at objektet et er formelement i formen \'form1\'.
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