问题描述
我已经看过几篇关于此的帖子,但仍在努力寻找适合我的解决方案。我需要在保存时循环查看几个复选框。这是我现在所拥有的。这是一个 ASP 页面,循环遍历记录集并写出许多复选框。
我试图使用隐藏的字段在选中框时通过“关闭”和“开启”,但是它在服务器端横跨作为
关闭 在
do while not rsHR.eof
idPOS = rsHR.fields("emplid")
idID = "ID" & idPOS
response.write("<TR>")
response.write("<TD Nowrap align=left> " & rsHR.fields("EMPLID") & "</TD>")
response.write("<TD Nowrap align=left> " & rsHR.fields("emp_name") & "</TD>")
response.write("<TD Nowrap align=left> " & rsHR.fields("EMP_FLOOR") & "</TD>")
response.write("<TD Nowrap align=left> " & rsHR.fields("RTO_GROUP") & "</TD>")
response.write("<TD>")
Response.Write("<INPUT type=hidden size=10 " & disabledProperty & " id=WEEK1 name=" & idPOS & " value='off'><INPUT type=checkBox size=10 " & disabledProperty & " id=WEEK1 name=" & idPOS & " defaultValue=" & tmp & " value=" & tmp & " onchange=week1(" & idID & ")>")
response.write("</TD>")
response.write("<TD>")
Response.Write("<INPUT type=hidden size=10 " & disabledProperty & " id=WEEK2 name=" & idPOS & " value='off'><INPUT type=checkBox size=10 " & disabledProperty & " id=WEEK2 name=" & idPOS & " defaultValue=" & tmp & " value=" & tmp & " onchange=week2(" & idID & ")>")
response.write("</TD>")
response.write("<TD>")
Response.Write("<INPUT type=hidden size=10 " & disabledProperty & " id=WEEK3 name=" & idPOS & " value='off'><INPUT type=checkBox size=10 " & disabledProperty & " id=WEEK3 name=" & idPOS & " defaultValue=" & tmp & " value=" & tmp & " onchange=week3(" & idID & ")>")
response.write("</TD>")
我试图通过 onchange 事件在 javascript 中设置值,但我无法让它将值传递给我的保存。
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
var idxWEEK1 = 1;
var idxWEEK2 = 2;
var idxWEEK3 = 3;
var idxcHG = 14;
var idxEID = 15;
var btnSubmitPEX = document.formPEX.submitPEX;
var bsubmitingPEXform = 0
function week1(cntl) {
var x = document.getElementById("WEEK1").checked;
document.getElementById("demo").innerHTML = x;
cntl[idxcHG].value = "DIRTY";
btnSubmitPEX.disabled = false;
}
非常感谢任何帮助或想法!
解决方法
隐藏字段不链接到复选框,无论复选框是否被选中,它们的值都会被提交。
考虑这种形式
<form method="post">
<input type="hidden" name="myfield" value="off">
<input type="checkbox" name="myfield" value="on">
<input type="submit" value="Submit">
</form>
隐藏字段和复选框字段具有相同的名称 - myfield - 因此,如果未选中该框,Request.Form("myfield")
的值为 "off",如果选中,则值为 "off,on"。如果接收到同一个表单变量的两个或多个值,则 VBScript 将用逗号将它们连接起来。
我不完全确定您要实现的目标,但这里有一些服务器端代码,可能会给您一些想法。
Dim MyVariable,checkedstatus
If Request.Form("myfield") = "on" then
MyVariable = "on"
checkedstatus = "checked"
Else
MyVariable = "off"
checkedstatus = ""
End If
Response.Write "<form method=""post"">" & vbcrlf
Response.Write " <input "& checkedstatus &" type=""checkbox"" name=""myfield"" value=""on"">" & vbcrlf
Response.Write " <input type=""submit"" value=""Submit"">" & vbcrlf
Response.Write "</form><br>" & vbcrlf
Response.Write MyVariable