7

我有一个复选框

<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

4

6 回答 6

9

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

Dim chkNGI
chkNGI = Request("chkNGI") & ""
If chkNGI = "" Then
    chkNGI = "0"
End If
于 2013-01-19T01:00:51.220 回答
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()">
于 2013-01-20T15:45:42.550 回答
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()">
于 2013-01-18T17:30:30.893 回答
2

你可以试试这个单行解决方案

信息:RS=记录集对象

<input type="checkbox" <%If RS("ColumnName")=True Then Response.Write(" checked='checked' ")%> name="tableColumn" value="1" >
于 2013-01-20T20:10:57.823 回答
2

我知道这个问题很老,但我最近不得不在 Classic ASP 中为一家公司重构一些遗留代码,并遇到了这个问题。现有代码使用与复选框同名的隐藏表单字段,并在结果中查找“false”或“false, true”。感觉很笨拙,但代码还根据带有前缀的动态命名复选框字段执行操作,因此从缺少的字段推断“假”会引入不同的复杂性。

如果您希望复选框返回“0”或“1”,则此技术应该可以解决问题。它使用一个未命名的复选框来操作一个命名的隐藏字段。

<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>
于 2016-01-18T00:42:16.023 回答
1

您在保存页面后的解决方案;

保存.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
%>
于 2013-02-20T01:25:36.660 回答