Avatar billede kovalt Nybegynder
05. oktober 2005 - 11:32 Der er 9 kommentarer og
1 løsning

OnClick i <option>

Hej

  Jeg har en select-form. Kan man ikke lave det sådan at når man klikker på udvalgte linier i selecten så kommer der en popup.

  Altså noget i den her stil

<select>
<option value='0'>Nummer 0</option>
<option value='1' onClick='alert("test");'>Nummer 1</option>
</select>

Jeg synes dog ikke jeg kan få det til at virke med onClick - ej eller onFocus

nogen forslag?

/Kovalt
Avatar billede Slettet bruger
05. oktober 2005 - 11:46 #1
Du kan lave noget med onchange="" eller onfocus="" og så tjekke på den valgte værdi..måske :)
Avatar billede kovalt Nybegynder
05. oktober 2005 - 12:06 #2
ja - det er bare noget møj - for min select er noget javascript som bliver genereret af noget asp - så det kommer garantert til at tage lang tid :-)
Avatar billede Slettet bruger
05. oktober 2005 - 12:17 #3
Hmmm...det bliver vel først vist når det er genereret færdigt..eller hva? En onchange har ikke noget at gøre med hvor det kommer fra.
Avatar billede kovalt Nybegynder
05. oktober 2005 - 13:01 #4
ja - udtrækket fra min database bliver lagt over i et java-script-array som så hefter kaldes frem.

Jeg kan også fint leve med en markering af baggrundsfarven på de pågældende række.
Avatar billede kovalt Nybegynder
05. oktober 2005 - 13:13 #5
måske jeg lige skulle forklare problemet i sin helhed.

Har har to dropdowns. Valget i den første (varegrupper) bestemmer indholdet af den anden (de varer der vises). Varerne bliver lånt ud til noget personale. Der skal således ligge en markering af om alle eksemplarer af en varer er udlånt. Jeg ville gerne om baggrundsfarven på de linier i min select, hvor alle varer er udlånt kunne blive markeret med en anden baggrundsfarve. Jeg har pt følgende kode:

strSQL = "SELECT id, navn FROM udstyrGruppe WHERE custID = "& session("custID")
objRec.Open strSQL, objConn
    arrUdstyrGruppe = objRec.GetRows()
objRec.Close()

<script language="JavaScript" type="text/jscript">
<!--
function reshow(object,object2) {
    prodkat = object.options[object.selectedIndex].text;
        for (var i = object2.length;i > 0;i--)
            object2.options[0] = null;
        reloading = true;
        showlinks(object2);
        object2.options[0].selected = true;
}

function showlinks(object) {
    if (prodkat == 'tom') {
        opt('tom','',object);
    }

    <% For j = 0 To ubound(arrUdstyrGruppe,2) %>
        if (prodkat == '<%= arrUdstyrGruppe(1,j) %>') {
            opt('','Vælg udstyr',object);
   
            <% strSQL = "SELECT id, navn, antalLager FROM udstyr WHERE gruppeID = "& arrUdstyrGruppe(0,j)
            objRec.Open strSQL, objConn
           
            if not objRec.EOF then
               
                while not objRec.EOF
                    if CInt(objRec("antalLager")) > CInt(intAntalUdlaant) then %>
                        opt('<%= objRec("id") %>','<% =objRec("navn") %>',object);
                    <% end if
                objRec.MoveNext
                wend
               
          end if
        objRec.close %>               
    }
    <% Next %>
}       

function opt(href,text,objwr) {
    if (reloading)  {
        var optionName = new Option(text, href, false, false)
        var length = objwr.length;
        objwr.options[length] = optionName;
    } else
        document.write('<OPTION VALUE="',href,'" style="background-color:#FF0000;">',text,'test</OPTION>');
}
//-->
</script>


<% intPersonaleID = trim(replace(request.QueryString("personaleID"),"'",""))
intUdlaanID = trim(replace(request.QueryString("udlaanID"),"'",""))

strSQL = "SELECT gruppeID, udstyrID, udleveret, afleveres, afleveret FROM personaleUdstyr, udstyr WHERE udstyr.id = personaleUdstyr.udstyrID AND personaleUdstyr.id = "& intUdlaanID
objRec.Open strSQL, objConn
    intUdstyrID = objRec("udstyrID")
    intGruppeID = objRec("gruppeID")
    strUdleveret = objRec("udleveret")
    strAfleveres = objRec("afleveres")
    strAfleveret = objRec("afleveret")
objRec.Close() %>

<table>
  <form action="udlaanPost.asp?action=rediger&udlaanID=<% =intUdlaanID %>&personaleID=<% =intPersonaleID %>" method="post" name="udlaanForm">
  <tr>
    <td>Gruppe:</td>
    <td>
    <select name="gruppeID" style="width:200px;" onChange="reshow(document.udlaanForm.gruppeID, document.udlaanForm.udstyrID);">
    <option value="" selected>Vælg gruppe</option>
    <% call writeUdstyrGruppeDD(intGruppeID) %>
    </select>
    </td>
  </tr>
  <tr>
    <td>Udstyr:</td>
    <td>
    <select name="udstyrID" style="width:200px;">
    <option value="" selected>Vælg udstyr</option>
    <% call writeUdstyrWithColorDD(intGruppeID,intUdstyrID) %>
    </select>
    </td>
  </tr>
</form>
</table>

Det virker fint når jeg første gang kører scriptet, idet min asp-funktion writeUdstyrWithColorDD() udskriver det fint. Problemet er når jeg skifter til en anden gruppe og lader JS genere det.
Avatar billede olebole Juniormester
06. oktober 2005 - 19:54 #6
<ole>

function bla(val) {
  switch(parseInt(val)) {
      case  0:
        // Gør noget her
        alert("Du klikkede på: " + val)
      break;

      case  2:
        // Gør noget her
        alert("Du klikkede på: " + val)
      break;

      case  3:
        // Gør noget her
        alert("Du klikkede på: " + val)
      break;
  }
}

<select onchange="bla(this.value)">
<option value='0'>Nummer 0</option>
<option value='1'>Nummer 1</option>
<option value='2'>Nummer 2</option>
<option value='3'>Nummer 3</option>
<option value='4'>Nummer 4</option>
</select>

/mvh
</bole>
Avatar billede kovalt Nybegynder
06. oktober 2005 - 20:03 #7
nice..... det prøver jeg lige
Avatar billede olebole Juniormester
06. oktober 2005 - 20:11 #8
- så kan du selv lave andre/passende cases  :)
Avatar billede kovalt Nybegynder
10. oktober 2005 - 17:11 #9
smider du et svar
Avatar billede kovalt Nybegynder
16. marts 2006 - 22:44 #10
lukker
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