复选框布尔值经典ASP

时间:2013-01-18 17:28:21

标签: asp-classic

我有一个复选框

<input type="checkbox" name="chkNGI" id="prod_ngi_sn" value="1">

当检查时,我传递值1,但是当没有检查时,传递任何值。 我必须传递值0。

我试过

<input type="checkbox" name="chkNGI" id="prod_ngi_sn" <%if prod_ngi_sn.checked then value="1" else value="0" end if%>>

但没效果。

TKS

6 个答案:

答案 0 :(得分:8)

复选框仅在勾选时传递值。您需要服务器端的逻辑来适应这种情况。

Dim chkNGI
chkNGI = Request("chkNGI") & ""
If chkNGI = "" Then
    chkNGI = "0"
End If

答案 1 :(得分:3)

<script> 
function calcParam() { 
  var checked = document.getElementById("prod_ngi_sn").checked; 
  if (checked) 
    document.getElementById("hiddenNGI").value = "1"; 
  else 
    document.getElementById("hiddenNGI").value = "0"; } 
</script> 

<input type="hidden" name="chkNGI" id="hiddenNGI"> 
<input type="checkbox" name="checkNGI" id="prod_ngi_sn" onClick="calcParam()">

答案 2 :(得分:2)

创建名为“chkNGI”的隐藏输入。 将当前复选框重命名为不同的复选框。 为onClick添加处理复选框并使用一个小的javascript函数,根据复选框的状态,在隐藏的输入中写入0或1。

举个例子,

<script> 
    function calcParam() { 
        var checked = document.getElementById("prod_ngi_sn").checked; 
        if (checked) 
            document.getElementById("hiddenNGI").value = "1"; 
        else 
            document.getElementById("hiddenNGI").value = "0"; 
    } 
</script> 

<input type="hidden" name="chkNGI" id="hiddenNGI"> 
<input type="checkbox" name="checkNGI" id="prod_ngi_sn" onClick="calcParam()">

答案 3 :(得分:2)

您可以尝试这种单线解决方案

信息:RS =记录集对象

<input type="checkbox" <%If RS("ColumnName")=True Then Response.Write(" checked='checked' ")%> name="tableColumn" value="1" >

答案 4 :(得分:2)

我知道这个问题已经过时了,但我最近不得不为Classic ASP中的公司重构一些遗留代码,并遇到了这个问题。现有代码使用隐藏的表单字段,其名称与复选框的名称相同,并查找&#34; false&#34;或者&#34; false,true&#34;在结果中。它感觉很糟糕,但代码也基于带有前缀的动态命名复选框字段执行操作,因此推断&#34; false&#34;从缺失的领域将引入不同的复杂性。

如果您想要一个复选框,则返回&#34; 0&#34;或&#34; 1&#34;,这种技术应该可以解决问题。它使用一个未命名的复选框来操作命名的隐藏字段。

<html>
<body>
<% If isempty(Request("example")) Then %>
<form>
<input type="hidden" name="example" value="0">
<input type="checkbox" onclick="example.value=example.value=='1'?'0':'1'">
<input type="submit" value="Go">
</form>
<% Else %>
<p>example=<%=Request("example")%></p>
<% End If %>
</body>
</html>

答案 5 :(得分:1)

您在保存页面的帖子中的解决方案;

<强> save.asp

<%
' connection string bla bla
' RS = Recordset Object

If Request.Form("tableColumn")=1 Then 
    RS("ColumnName") = 1
Else
    RS("ColumnName") = 0
End If

' other columns saving process bla bla bla
%>