需要帮助处理保存时未选中的复选框值

问题描述

我已经看过几篇关于此的帖子,但仍在努力寻找适合我的解决方案。我需要在保存时循环查看几个复选框。这是我现在所拥有的。这是一个 ASP 页面,循环遍历记录集并写出许多复选框。

我试图使用隐藏的字段在选中框时通过“关闭”和“开启”,但是它在服务器端横跨作为

关闭

    do while not rsHR.eof
    
  idPOS = rsHR.fields("emplid")
  idID = "ID" & idPOS

response.write("<TR>")

response.write("<TD Nowrap align=left>&nbsp;" & rsHR.fields("EMPLID") & "</TD>")
response.write("<TD Nowrap align=left>&nbsp;" & rsHR.fields("emp_name") & "</TD>")
response.write("<TD Nowrap align=left>&nbsp;" & rsHR.fields("EMP_FLOOR") & "</TD>")
response.write("<TD Nowrap align=left>&nbsp;" & 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