Har denna kod i ett formulär:
For I = 1 To 52
Response.Write("<input type=""checkbox"" name=""Weeks"" value=""" & I & """>" & vbCrlf)
Next
När jag sedan postar formuläret skapas variabeln Weeks med värden från samtliga icheckade boxar, typ:
Weeks = 1,4,23,45
Hur kan jag få dessa boxar att vara icheckade efter postningen?
En variant är ju att döpa dem med olika namn Weeks1, Weeks2...
Men då lär jag ju göra 52 variabler (lockar inte direkt).
Tips?
EkströmMedlem sedan feb. 20022 594 inlägg Du får splitta upp variabeln Weeks och sedan loopa ut de i ett JavaScript-skriptblock där du får typ Response.Write("document.myform.Weeks"& myarray(i) &".checked = true") eller nåt sånt. Är mycket osäker när det gäller JavaScript
MacceMedlem sedan apr. 2001425 inlägg lägg din sträng i en variabel och när du loopar ut boxarna så kör en if-sats vid varje rad:
IF instr("," & strWeeks, "," & I & ",")>1 THEN checked="checked" else checked=""
Macce skrev:
lägg din sträng i en variabel och när du loopar ut boxarna så kör en if-sats vid varje rad:
IF instr("," & strWeeks, "," & I & ",")>1 THEN checked="checked" else checked=""
Det blir nog inte korrekt va!
Kryssar man i t.ex. 52 så blir ju 5 och 2 icheckad. :)
Ekström skrev:
Är mycket osäker när det gäller JavaScript
Jag också! :) Men det kanske går!
JohnsenMedlem sedan juli 2000836 inlägg Otestat, men det borde gå...
<form name="foo">
<%
Weeks = "1,4,23,45"
For I = 1 To 52
Response.Write("<input type=""checkbox"" name=""Weeks"" value=""" & I & """>" & vbCrlf)
Next
%>
</form>
<script>
theArr = new Array(<%= Weeks %>)
for(var j=0; j<theArr.length; j++){document.foo.Weeks[eval(theArr[j]-1)].checked=true}
</script>
MacceMedlem sedan apr. 2001425 inlägg Det blir nog inte korrekt va!
Kryssar man i t.ex. 52 så blir ju 5 och 2 icheckad.
Jo då, om du tittar på koden kommer du att se att det måste finnas ett komma både framför och bakom, glömde dock skriva att du måste lägga till ett extra komma sist i strängen...