webForumDet fria alternativet

Få värde att vara kvar som standard

JavaScript

4 svar · 197 visningar · startad av brw

Medlem sedan juli 2000619 inlägg
Frågan#1

Hej!

JAg kör följande kod men jag vill att när jag valt i huvudgruppen så skall Choose name finnas kvar med värde 0 för att man ska kunna skicka utan att välja name... om man bara vill lista på en grupp.. som det är nu så försvinner den och listar bara namnen..

hur fasiken fixar man det?

såhär ser koden ut.

<%
Set rsX = Server.CreateObject("ADODB.Recordset")

sQuery = "SELECT grupp.gruppnamn, users.name, " & _
    "grupp.Id AS gID, users.Id AS uID " & _
    "FROM users INNER JOIN grupp " & _
    "ON users.gruppid = grupp.Id " & _
	 "ORDER BY grupp.gruppnamn, users.name"

rsX.Open sQuery, Connection, adOpenForwardOnly, adLockReadOnly, adCmdText

If rsX.EOF Then
    Response.Write "Inga grupper.<BR>"
Else

    ' write the group listbox...

    Response.Write "<SELECT NAME=""group"" class=""formular"" ONCHANGE=""groupselected(this);"" >"
    Response.Write "<OPTION VALUE=0>Choose group</OPTION>"

    ' write the entry code for the javascript...

    sJavaScript = "function groupselected(elem){" & vbCrlf & _
        "for (var i = document.f1.names." & _
        "options.length; i >= 0; i--){" & vbCrlf & _
        "document.f1.names.options[i] = null;" & _
        vbCrlf

    ' loop through the recordset...

    Do Until rsX.EOF

        ' is this a new bransch?
        If sLastbransch <> rsX("gruppnamn") Then

            ' if so, add an entry to the first listbox
            sLastbransch = rsX("gruppnamn")
            Response.Write "<OPTION VALUE=" & rsX("gID") & _
                ">" & sLastbransch & "</OPTION>"

            ' and add a new section to the javascript...
            sJavaScript = sJavaScript & "}" & vbCrlf & _
                "if (elem.options[elem.selectedIndex].value==" & _
                rsX("gID") & "){" & vbCrlf
        End If

        ' and add a new nameline to the javascript...
        
        'sJavaScript = sJavaScript & _

        'sJavaScript = sJavaScript & _
		 '"document.f1.names.options[document.f1.names.options.length] = new Option('Choose name','0');" & _
		 ' vbCrlf

 
        
        sJavaScript = sJavaScript & _
            "document.f1.names.options[document." & _
            "f1.names.options.length] = new Option('" & _
            rsX("name") & "','" & rsX("uID") & "');" & _
            vbCrlf
        rsX.MoveNext
    Loop

    ' finish the group listbox...
    Response.Write "</SELECT>"

    ' create the kategori listbox...

    Response.Write "&nbsp;&nbsp;&nbsp;<SELECT NAME=""names"" class=""formular"">"
    Response.Write "<OPTION>Choose name</OPTION>"
    Response.Write "</SELECT>"

    ' put the last line on the javascript and write it out...
    sJavaScript = sJavaScript & vbCrlf & "}" & vbCrlf & "}" & vbCrlf

    Response.Write "<SCR" & "IPT LANGUAGE=""JavaScript"">" & vbCrlf
    Response.Write sJavaScript & vbCrlf & "</SCR" & "IPT>" & vbCrlf
End If
rsX.Close
Set rsX = Nothing
%>
Medlem sedan nov. 20017 144 inlägg
#2

Om frågan gäller javascript är det lättare om du klistrar in källkoden i stället, annars så blir det lite virrvarrigt.

Medlem sedan juli 2000619 inlägg
#3

Nu så har vi resultatet så blir det lite lättare att se hur det skall se ut...


        <form method="post" action="list_cases.asp" name="f1" class="form">

<SELECT NAME="group" class="formular" ONCHANGE="groupselected(this);" ><OPTION VALUE=0>Choose group</OPTION><OPTION VALUE=1>Administrators</OPTION><OPTION VALUE=2>IMS</OPTION></SELECT>&nbsp;&nbsp;&nbsp;<SELECT NAME="names" class="formular"><OPTION>Choose name</OPTION></SELECT><SCRIPT LANGUAGE="JavaScript">
function groupselected(elem){
for (var i = document.f1.names.options.length; i >= 0; i--){
document.f1.names.options[i] = null;
}
if (elem.options[elem.selectedIndex].value==1){
document.f1.names.options[document.f1.names.options.length] = new Option('Administrator','1');
document.f1.names.options[document.f1.names.options.length] = new Option('andreas','2');
document.f1.names.options[document.f1.names.options.length] = new Option('anna','3');
}
if (elem.options[elem.selectedIndex].value==2){
document.f1.names.options[document.f1.names.options.length] = new Option('kent','4');

}
}
</SCRIPT>

</form>

Det jag vill är att den även ska skriva ut för varje
<OPTION VALUE=0>Choose name</OPTION>

så att man kan gå vidare utan att välja ett namn... nu blir det automatiskt den som står överst i listan som blir markerad eftersom det inte finns något "blankval"

Medlem sedan nov. 20017 144 inlägg
#4

I din kåd så har du en bortkommenterad rad där det står:

'sJavaScript = sJavaScript & _
		 '"document.f1.names.options[document.f1.names.options.length] = new Option('Choose name','0');" & _
		 ' vbCrlf

Vad händer om du tar bort kommentartecknet/na?

Medlem sedan juli 2000619 inlägg
#5

det är bara jag som har provat lite... då får jag totalt error...

Nu löste jag det... det saknades ett VBCRLF

252 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)