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
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.
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>