我有一个复选框
<td><strong>Online Ordering: </strong></td>
<td><input type="checkbox" name="OnlineOrdering" value="<%=OnlineOrdering%>" <% if OnlineOrdering = True then response.write "checked='Checked'" end if %>/></td>
如何在提交表单时捕获是选中还是取消选中复选框?
OnlineOrdering = request.form("OnlineOrdering")
这不起作用?
答案 0 :(得分:2)
这应该为变量OnlineOrdering:
分配一个true / falseIf Request.ServerVariables("REQUEST_METHOD") = "POST" Then
OnlineOrdering = (Request.Form("OnlineOrdering") <> "")
End If
答案 1 :(得分:1)
我发现这篇文章是因为我试图解决同样的问题。我有一个似乎运作良好的解决方案。
在HTML表单中,创建动态生成的复选框。下面使用的 this_box_id 的值可以是任何唯一的数字。就我而言,它是SQL数据库中该问题的主键(自动编号)。动态生成带有关联隐藏字段的复选框:
<input type="hidden" name="check_box_indicator" value="<%=this_box_id%>">
<input type="checkbox" name="box_id<%=this_email_selection_id%>"
value="<%=this_box_id%>">
当asp返回此值时,它将返回 check_box_indicator 的多个值。这是一个示例查询字符串片段:
...&check_box_indicator=78&box_id78=78&check_box_indicator=98&check_box...
在下一页上,ASP将读取表单数据。它会找到每个check_box_indicator及其值。该值可用于检查相关复选框的值。如果该复选框返回,则检查它,如果不是,您将知道它未被检查。在上面的示例中,选中了复选框78,因此传递了box_id78值,而复选框98没有传递,并且未发送box_id98。这是使用它的代码。
For Each this_box_id In Request.Form("check_box_indicator") 'check EVERY box'
box_state = Request.Form("box_id"&this_box_id) 'collect passed values only'
if box_state > 0 then
store_value = "y"
else
store_value = "n"
end if
' you now have the this_box_id number identifying this item in the DB, '
' the value of the check box, if it was passed '
' and a definite y or n value '
Next
使用示例查询字符串,您将获得78 y,98 n