我使用以下方法验证必须选择一个单选按钮。
function validateForm(){
var searchType = document.getElementsByName("form1:searchType");
var a = !(searchType[0].checked);
var b = !(searchType[1].checked);
if(a&&b){
alert('Please select search type');
return false;
}
return true;
}
在上面的方法中,searchType是单选按钮,它创建了两个按钮。如果没有选择两个单选按钮但它显示警告消息,即使选择了第二个单选按钮,它也能正常显示警告消息。有什么好主意吗?
答案 0 :(得分:0)
您需要使用或运算符,而不是和 - 使用 &&
时,只有在两者条件 true - 当其中一个 false 时,整个语句也是 false 。
所以,只需改为:
if(a || b){
alert('Please select search type');
return false;
}
它应该做你想做的事。
编辑:抱歉,我对布尔逻辑感到困惑。
从quick test开始,您的代码完全按照原样运行:只有勾选没有复选框时,警报才会显示。
如果可能的话,请解释在jsFiddle中重现的问题和步骤,我们会看到。
答案 1 :(得分:0)
<html>
<head>
<script language="javascript">
function validateForm(){
var searchType = document.getElementsByName("form1:searchType");
var a = !(searchType[0].checked);
var b = !(searchType[1].checked);
if(a&&b){
alert('Please select search type');
return false;
}
return true;
}
</script>
</head>
<body>
<form name="form1">
<input type="radio" name="form1:searchType" /> male
<input type="radio" name="form1:searchType" /> female
<input type="submit" name="submit" value="submit" onclick="validateForm()" >
</form>
</body>
</html>
我在这段代码中使用你的功能,它的工作正常,它可以帮助你