在处理复选框返回到Request.Form对象的结果方面,似乎有很多人遇到此问题。 因此,本文旨在全面解释复选框的解释方式,它们的值是和不是,以及如果将它们作为是/否或位字段插入数据库中时应如何处理它们。
最常见的是,我看到有人试图检查复选框以查看其值为True还是False。 这是不正确的。 复选框可以
不返回布尔值。 默认情况下,如果选中它们,则返回值“ on”;如果不选中它们,则不返回值。 如果设置复选框的value属性,则如果选中该复选框,则将返回该值,而不是“ on”,但如果未选中该复选框,则仍将不返回值。例:
<input type="checkbox" name="mycheckbox" id="mycheckbox"/>
<!--Will return a value of "on" if it is checked, and will return EMPTY or "" if it is not checked -->
<input type="checkbox" name="mycheckbox" id="mycheckbox" value="MyNameIsMark"/>
<!--Will return a value of "MyNameIsMark" if it is checked, and will return EMPTY or "" if it is not checked.-->
If Request.Form("mycheckbox") = "MyNameIsMark" Then
Response.Write "My Check Box has been checked!"
Else
Response.Write "No one wants to check my checkbox :("
End If
将复选框插入数据库
许多人还错误地更新了他们的数据库。 特别是在访问方面。
如果您正在使用访问权限,则应为是/否字段提供值,该值是-1表示是,值为0表示否。
如果您使用的是SQL Server,则应分别为位字段提供True或False值。
我建议您将yes / no或bit字段的默认值设置为0(访问)或False(SQL Server)。 如果这样做,您将不必担心每次插入时在脚本中将bit或yes / no字段的值设置为false。 除非您明确告知数据库将yes / no或bit字段的值设置为Yes / True / -1等-插入新记录时它将自动将其自身设置为No / False / 0等。
'Access
If Request.Form("Checkbox") = "on" Then
rs("Yes-No") = -1
End If
'SQL Server
If Request.Form("Checkbox") = "on" Then
rs("Yes-No") = True
End If
标记
From: https://bytes.com/topic/asp-classic/insights/728893-dealing-checkboxes