Avatar billede miss-g Seniormester
30. maj 2004 - 14:05 Der er 9 kommentarer og
1 løsning

Vælge flere uden CTRL?

Jeg har sådan en tekstboks (listbox) hvor man skal vælge 1 ord eller flere. Normalt vil man jo holde CTRL nede for at vælge flere, men jeg mener at have set nogle sites, hvor man klikker på et ord for at markere og klikker på det igen, for at fjerne markeringen.

Hvordan laves det? (Børnehave niveau - så jeg kan forstå det, tak) *G*
Avatar billede Slettet bruger
30. maj 2004 - 15:24 #1
Dette er desværre det tætteste, jeg kunne komme. Timeout'en ser ud til at være nødvendig - af én eller anden grund - og derfor "blinker" menuvalgene lige kort, når man trykker. Men det virker da:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<script type="text/javascript">
var tempArr;

function ned(sel) {
  opts = sel.options;
  tempArr = new Array();
  for (i = 0; i < opts.length; i++)
    tempArr[i] = opts[i].selected;
}

function op() {
  opts = document.frm.sel.options;
  for (i = 0; i < opts.length; i++)
    opts[i].selected = (opts[i].selected) ? !tempArr[i] : tempArr[i];
}
</script>
</head>
<body>
<form name="frm">
<select name="sel" onmousedown="ned(this);" onclick="setTimeout('op();', 1);" multiple="multiple" size="4">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</form>
</body>
</html>
Avatar billede miss-g Seniormester
30. maj 2004 - 15:29 #2
Jamen, vi satser så på at der kommer en løsning uden at den "blinker".

Det må kunne lade sig at gøre *S*

Men tak for forlaget.
Avatar billede skovenborg Nybegynder
30. maj 2004 - 15:32 #3
her er en alternativ løsning - men det kan godt være den også "blinker" for meget:
<script type="text/javascript">
var selItems = new Array();
function selItem(selElm) {
      var indexName = selElm.name;
      if (!selItems[indexName]) {selItems[indexName] = new Array();}
      if (selItems[indexName][selElm.selectedIndex]) {
              selItems[indexName][selElm.selectedIndex] = false;
      }
      else {
            selItems[indexName][selElm.selectedIndex] = true;
      }
      for (i in selItems[indexName]) {
            selElm.options[i].selected = selItems[indexName][i];
      }
}
</script>

<select name="sel1" multiple="multiple" onchange="selItem(this);">
<option value="val1">Value1</option>
<option value="val2">Value2</option>
<option value="val3">Value3</option>
<option value="val4">Value4</option>
<option value="val5">Value5</option>
</select>
Avatar billede roenving Novice
30. maj 2004 - 16:15 #4
Ser ud til at blinkeriet ikke kan undgås, men også, at timeout kan undgås ved at bruge onchange i stedet for onclick ...
Avatar billede skovenborg Nybegynder
30. maj 2004 - 16:52 #5
alternativet ville være at lave en falsk selectbox - altså opbygget med billeder,divs eller sådan noget. Det kan blive lidt mere bøvlet at arbejde med, men man kan undgå blinkeriet.
Avatar billede miss-g Seniormester
01. juni 2004 - 23:59 #6
Slet ingen løsninger på en box der IKKE blinker?

Irreterende at jeg ikke lige kan finde et eksempel på nettet, så kunne man da se koden. Har kigget lidt på ejendomsmæglere - men synes ikke heldet var med mig der.
Avatar billede Slettet bruger
02. juni 2004 - 21:26 #7
Vil du have en falsk selectboks? Det kan hurtigt laves, men udelukker helt brugere uden JavaScript.
Avatar billede miss-g Seniormester
03. juni 2004 - 21:52 #8
Det skal gerne virke så alle kan bruge funktionen.
Avatar billede miss-g Seniormester
04. juni 2004 - 20:45 #9
Synes ikke vi kommer videre her.

Er ikke tilfreds med blinkeriet - desværre.
Avatar billede roenving Novice
05. juni 2004 - 02:08 #10
Det er helt forståsomt, at du ikke er tilfreds med blinkeriet, men alternative muligheder findes åbenbart ikke, så egentlig har du vel fået et kvalificeret svar ?-)
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