注册 登录
编程论坛 ASP技术论坛

复选框判断问题

anjincheng 发布于 2011-05-15 16:32, 1127 次点击
老师们:
    选定或取消选定复选框,怎么判断不了?
判断:如选定,则显示“好”,否则显示“坏”
<%
XIAN=trim(request("XIAN"))
response.Write "<input name='XIAN' type='checkbox' id='XIAN' value='1' checked>  显示数据</td>"
If XIAN=1 Then
response.Write "好"
Else
response.Write "坏"
End If
%>
18 回复
#2
dzt00012011-05-15 22:13
request("XIAN")要提交表单后才能有值。
如果你想点击复选框时就有提示,那请用JS
#3
yms1232011-05-16 17:15
恩,checkbox必须配合javascript来使用
<script language="javascript">
//表单提交
function submit_Click()
{
   //判断是否选中
   if(document.form1.XIANChk.checked)
      document.form1.XIAN.value="1";
   else
      document.form1.XIAN.value='0';
   document.form1.action=self.location.href;//提交到当前页
   document.form1.submit();//提交表单
}
</script>
<form name="form1" method="post" target="_self">
<%
XIAN=trim(request.Form("XIAN"))
response.Write "<input name='XIANChk' type='checkbox' id='XIAN' value='1' checked/>  显示数据"
If XIAN=1 Then
response.Write "好"
Else
response.Write "坏"
End If
%>
  <input type="button" name="submit" onclick="submit_Click();" value="提交" />
  <input type="hidden" name="XIAN" value='1' />
</form>

[ 本帖最后由 yms123 于 2011-5-16 17:22 编辑 ]
#4
anjincheng2011-05-17 08:31
感谢老师!但我需要的是不用点击提交按钮(只需要点击复选框)就能实现!
#5
yms1232011-05-17 10:17
<script language="javascript">
//表单提交
function submit_Click()
{
   //判断是否选中
   if(document.form1.XIANChk.checked)
      document.form1.XIAN.value="1";
   else
      document.form1.XIAN.value='0';
   document.form1.action=self.location.href;//提交到当前页
   document.form1.submit();//提交表单
}
</script>
<form name="form1" method="post" target="_self">
<%
XIAN=trim(request.Form("XIAN"))
response.Write "<input name='XIANChk' type='checkbox' id='XIAN' onclick="submit_Click();" value='1' checked/>  显示数据"
If XIAN=1 Then
response.Write "好"
Else
response.Write "坏"
End If
%>
   <input type="hidden" name="XIAN" value='1' />
</form>
把提交表单事件注册到复选框不就不用点提交了?
#6
anjincheng2011-05-17 12:32
谢谢老师,但报错

=======================================
Microsoft VBScript 运行时错误 (0x800A000D)
类型不匹配: '[string: ""]'
/lottery/Untitled-1.asp, 第 19 行
.........................
If XIAN=1 Then‘19行
.........................
======================================
还有:onclick="submit_Click();" 中是否可以不用双引号?
#7
yms1232011-05-17 13:07
<script language="javascript">
//表单提交
function submit_Click()
{
   //判断是否选中
   if(document.form1.XIANChk.checked)
      document.form1.XIAN.value="1";
   else
      document.form1.XIAN.value='0';
   document.form1.action=self.location.href;//提交到当前页
   document.form1.submit();//提交表单
}
</script>
<form name="form1" method="post" target="_self">
<%
XIAN=trim(request.Form("XIAN"))
response.Write "<input name='XIANChk' type='checkbox' id='XIAN' onclick='submit_Click();' value='1' checked/>  显示数据"
If XIAN=1 Then
response.Write "好"
Else
response.Write "坏"
End If
%>
   <input type="hidden" name="XIAN" value='1' />
</form>
忘了要用单引号
#8
anjincheng2011-05-17 15:08
感谢老师:
    还是报错:
=====================================
错误类型:
Microsoft VBScript 运行时错误 (0x800A000D)
类型不匹配: '[string: ""]'
/lottery/Untitled-12.asp, 第 18 行 ( If XIAN=1 Then  )

=====================================
#9
liang1982072011-05-17 18:06
If XIAN=1 Then 改成 If XIAN="1" Then
#10
anjincheng2011-05-17 18:37
把If XIAN=1 Then 改成 If XIAN="1" Then 后
复选框永远是打勾的状态,没响应了!!
#11
liang1982072011-05-17 18:55
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>判断</title>
 <script language="javascript">
 //表单提交
 function submit_Click()
 {
    //判断是否选中
    if(document.form1.XIANChk.checked=="1")
       document.getElementById("form1").innerHTML="<input name='XIANChk' type='checkbox' id='XIAN' onclick='submit_Click();' value='1' checked>显示数据-->好";
    else
       document.getElementById("form1").innerHTML="<input name='XIANChk' type='checkbox' id='XIAN' onclick='submit_Click();' value='1'>显示数据-->坏";
 }
 </script>
</head>

<body>
<form name="form1" id="form1" method="post" target="_self">
 <input name='XIANChk' type='checkbox' id='XIAN' onclick='submit_Click();' value='1'>显示数据
 </form>
</body>

</html>
这可能是要的效果  上面那个代码我没运行只是看见你把接收的转换成字符串了,所以那要加引号。
#12
liang1982072011-05-17 18:58
document.form1.XIAN.value="1";你说的没反应问题应该是提交刷新闹的,因为每次刷新都会返回到原来默认的状态!

[ 本帖最后由 liang198207 于 2011-5-18 08:07 编辑 ]
#13
liang1982072011-05-17 19:01
自己看看吧,我出去吃饭了,这个应该是用JS判断,不能涉及提交的过程,否则在实际应用中很没用!如果涉及数据库了用AJAX
#14
yms1232011-05-17 21:03
<script language="javascript">
//表单提交
function submit_Click()
{
   //判断是否选中
   if(document.form1.XIANChk.checked)
      document.form1.XIAN.value="1";
   else
      document.form1.XIAN.value='0';
   document.form1.action=self.location.href;//提交到当前页
   document.form1.submit();//提交表单
}
</script>
<form name="form1" method="post" target="_self">
<%
XIAN=Cint(trim(request.Form("XIAN")))
response.Write "<input name='XIANChk' type='checkbox' id='XIAN' onclick='submit_Click();' value='1' />  显示数据"
If XIAN=1 Then
response.Write "好"
Else
response.Write "坏"
End If
%>
   <input type="hidden" name="XIAN" value='1' />
</form>
这么简单的功能没必要搞ajax,除非你真需要那样做

[ 本帖最后由 yms123 于 2011-5-17 21:04 编辑 ]
#15
liang1982072011-05-18 07:29
不同意楼上说法,因为这个功能如果这样实现,实际上既复杂化了而且关键是实际中没用,纯属为了练习写代码。
#16
anjincheng2011-05-18 08:45
感谢几位老师!
经调试,liang198207老师的可以实现结果,但无法加到我的代码段里;
yms123老师的代码可以加到我的代码段里,但运行还是不对,类型错误哦!!!
#17
yms1232011-05-20 09:38
<script language="javascript">
//表单提交
function submit_Click()
{
   //判断是否选中
   if(document.form1.XIANChk.checked)
      document.form1.XIAN.value="1";
   else
      document.form1.XIAN.value='0';
   document.form1.action=self.location.href;//提交到当前页
   document.form1.submit();//提交表单
}
</script>
<form name="form1" method="post" target="_self">
<%
XIAN=Cint(trim(request.Form("XIAN")))
response.Write "<input name='XIANChk' type='checkbox' id='XIAN' onclick='submit_Click();' value='1' />  显示数据"
If XIAN=1 Then
response.Write "好"
Else
response.Write "坏"
End If
%>
这个代码还类型错误?
#18
anjincheng2011-05-20 10:38
是的,Cint类型错误!
#19
yms1232011-05-20 11:10
<%
XIAN=trim(request.Form("XIAN"))
response.Write "<input name='XIANChk' type='checkbox' id='XIAN' onclick='submit_Click();' value='1' />  显示数据"
If XIAN="1" Then
response.Write "好"
Else
response.Write "坏"
End If
%>
1