佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 839|回复: 14

[解决了] JavaScript验证checkbox

[复制链接]
发表于 9-11-2006 01:17 PM | 显示全部楼层 |阅读模式
现在我拥有两个checkbox,然后我想验证checkbox,就是用户有勾到其中一个checkbox,但是又要验证用户不可以勾两个chekcbox,然后以下的代码只是验证用户有没有勾到其中一个checkbox.

if ( doc.receipt.checked == true && doc.noreceipt.checked == true)

        {
               
                return true;
        }

[ 本帖最后由 sotsot82 于 14-11-2006 09:32 AM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 9-11-2006 04:57 PM | 显示全部楼层

  1. if ( doc.receipt.checked == true || doc.noreceipt.checked == true){
  2.                 if(!(doc.receipt.checked == true && doc.noreceipt.checked == true)){
  3.                      return true;
  4.                 }           
  5. }
复制代码
回复

使用道具 举报

发表于 10-11-2006 01:08 AM | 显示全部楼层
可以用radio吧。
回复

使用道具 举报

发表于 10-11-2006 09:28 AM | 显示全部楼层

function validate_checkbox () {

  if ((doc.receipt.checked && doc.noreceipt.checked) ||
      (!doc.receipt.checked && !doc.receipt.checked))
        return false;       
                       
  return true;                       
}


简单一点的方法... 就是象 hui_wooi 说的... 用 radio button.
回复

使用道具 举报

 楼主| 发表于 10-11-2006 10:55 AM | 显示全部楼层
呵呵,老板指定要这样,我也没有办法,之前也是想到用radio button.
回复

使用道具 举报

 楼主| 发表于 10-11-2006 11:24 AM | 显示全部楼层
原帖由 goatstudio 于 10-11-2006 09:28 AM 发表

function validate_checkbox () {

  if ((doc.receipt.checked && doc.noreceipt.checked) ||
      (!doc.receipt.checked && !doc.receipt.checked))
        return false;       
                       
  return t ...



这个我尝试过,可是不能放两个ALERT,不是吗?


第一的我想放用户没有选择其中一个,还有一个是用户选择两个,叫用户重新选择。
回复

使用道具 举报

Follow Us
发表于 10-11-2006 04:35 PM | 显示全部楼层
原帖由 sotsot82 于 10-11-2006 11:24 AM 发表



这个我尝试过,可是不能放两个ALERT,不是吗?


第一的我想放用户没有选择其中一个,还有一个是用户选择两个,叫用户重新选择。


1. 设立一个 flag
2. 把两个 validation 拆开
3. 任何一个 validation 失败就 alert, 把 flag 设为失败
4. 在 flag 没有成功之前, 就不能更进一步执行.
回复

使用道具 举报

 楼主| 发表于 10-11-2006 05:28 PM | 显示全部楼层
怎样?

我用这样,可是有问题:
var NewCount = 0

if (( doc.receipt.checked == true && doc.noreceipt.checked == true) || ( doc.receipt.checked == false && doc.noreceipt.checked == false))
{
         alert("wanna receipt?");
       
          return false;
}

if (doc.receipt.checked)
{NewCount = NewCount + 1}

if (doc.noreceipt.checked)
{NewCount = NewCount + 1}

if (NewCount == 2)
{
alert('Pick Just One Please')

return false;
}
回复

使用道具 举报


ADVERTISEMENT

发表于 13-11-2006 09:42 AM | 显示全部楼层
原帖由 sotsot82 于 10-11-2006 05:28 PM 发表
怎样?

我用这样,可是有问题:
var NewCount = 0

if (( doc.receipt.checked == true && doc.noreceipt.checked == true) || ( doc.receipt.checked == false && doc.noreceipt.checked  ...


你的 code 太长气了. 试试看:

<script language="javascript">

function validate() {

  var valid = true;
       
  if (!document.forms[0].checkbox1.checked && !document.forms[0].checkbox2.checked) {
        alert("Please check.");
        valid = false;
  }
       
  if (document.forms[0].checkbox1.checked && document.forms[0].checkbox2.checked) {
        alert("Please check only 1");
        valid = false;
  }
       
  return valid;
}
</script>

<form>
<input type="checkbox" name="checkbox1">checkbox 1<br>
<input type="checkbox" name="checkbox2">checkbox 2<br>
<input type="submit" value="check" onclick="return validate();">
</form>
回复

使用道具 举报

 楼主| 发表于 13-11-2006 11:27 AM | 显示全部楼层
我合拼你的代码与我的代码,可是最后的却验证不到呢?
回复

使用道具 举报

发表于 13-11-2006 11:34 AM | 显示全部楼层
原帖由 sotsot82 于 13-11-2006 11:27 AM 发表
我合拼你的代码与我的代码,可是最后的却验证不到呢?

写出合并的代码吧。
可能有虫,可以帮忙找虫。
回复

使用道具 举报

 楼主| 发表于 13-11-2006 03:30 PM | 显示全部楼层
如果有四个CHECKBOX,然后只要其中一个该怎样更改?

[ 本帖最后由 sotsot82 于 13-11-2006 05:44 PM 编辑 ]
回复

使用道具 举报

发表于 13-11-2006 06:44 PM | 显示全部楼层
function validate() {

  var valid = true;
  var count = 0;
      
  if (!document.forms[0].checkbox1.checked && !document.forms[0].checkbox2.checked && !document.forms[0].checkbox3.checked && !document.forms[0].checkbox4.checked) {
        alert("Please check.");
        valid = false;
  }

  if (document.forms[0].checkbox1.checked)
       count++

  if (document.forms[0].checkbox2.checked)
       count++

  if (document.forms[0].checkbox3.checked)
       count++

  if (document.forms[0].checkbox4.checked)
       count++

  if (count>1) {
        alert("Please check only 1");
        valid = false;
  }
      
  return valid;
}

[ 本帖最后由 hui_wooi 于 14-11-2006 01:47 AM 编辑 ]
回复

使用道具 举报

发表于 14-11-2006 01:23 AM | 显示全部楼层
原帖由 sotsot82 于 13-11-2006 03:30 PM 发表
如果有四个CHECKBOX,然后只要其中一个该怎样更改?


四个 checkbox 的名字是如何排列? 整个 form 只有这四个 checkbox 吗?
回复

使用道具 举报

 楼主| 发表于 14-11-2006 09:24 AM | 显示全部楼层
虽然代码不一样,但是得到你们的提示,问题解决了,谢谢羊兄与hui_wooi兄
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-8-2025 02:06 AM , Processed in 0.143088 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表