查看: 839|回复: 14
|
[解决了] JavaScript验证checkbox
[复制链接]
|
|
现在我拥有两个checkbox,然后我想验证checkbox,就是用户有勾到其中一个checkbox,但是又要验证用户不可以勾两个chekcbox,然后以下的代码只是验证用户有没有勾到其中一个checkbox.
if ( doc.receipt.checked == true && doc.noreceipt.checked == true)
{
return true;
}
[ 本帖最后由 sotsot82 于 14-11-2006 09:32 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 9-11-2006 04:57 PM
|
显示全部楼层
- if ( doc.receipt.checked == true || doc.noreceipt.checked == true){
- if(!(doc.receipt.checked == true && doc.noreceipt.checked == true)){
- return true;
- }
- }
复制代码 |
|
|
|
|
|
|
|
发表于 10-11-2006 01:08 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 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,不是吗?
第一的我想放用户没有选择其中一个,还有一个是用户选择两个,叫用户重新选择。 |
|
|
|
|
|
|
|
发表于 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;
} |
|
|
|
|
|
|
|
发表于 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兄 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|