表单仍然返回false,即使其中一个无线电正在被检查
form still returns false even when one of radios is being checked
为什么当一个性别无线电被检查时,表单仍然返回false?
HTML<form action="">
<input class="radio_male" type="radio" name="gender" value="Male"> Male
<br>
<input class="radio_female" type="radio" name="gender" value="Female"> Female
<br>
<input type="submit" value="Submit">
</form>
JavaScript var $ = document.querySelector.bind(document);
$('form').onsubmit = function() {
if(!$('.radio_male').checked || !$('.radio_female').checked) {
return false;
} else {
return true;
}
}
如果您想要检查其中任何一个选项是否被选中,请执行以下操作,
var $ = document.querySelector.bind(document);
$('form').onsubmit = function() {
if($('.radio_male').checked || $('.radio_female').checked) {
return true;
} else {
return false;
}
}
链接到jsFiddle
根据你方以下条件,if(!$('.radio_male').checked || !$('.radio_female').checked) {
您正在检查如果Female
未被选中或male
未被选中,那么false
在逻辑上是错误的,一如既往,将有female
未被选中(当male
被选中时)或male
未被选中(当female
被选中时)或两者未被选中(默认状态),因此该条件将始终产生true
。
因此,在我建议的答案中,我们首先检查male
被选中或female
被选中,然后true,
否则false
。
您可能想要自己大声读出代码。你在问if male isn't checked OR female isn't checked
由于单选按钮只允许选择一个选项,因此此条件将始终运行。
你最简单的解决方案是将OR改为AND
if(!$('.radio_male').checked && !$('.radio_female').checked)
JSFiddle: https://jsfiddle.net/Lz44tk7d/2/
使用jQuery检查是否选中了单选框或复选框,它是:
$('.radio_male').is(':checked')
你可以把你的代码反过来如果其中一个被检查了就返回真,否则返回假或者你可以尝试使用&&如果单选按钮被选中,
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 使用javascript将动态表从一个html页面打印到另一个html页
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- attr() 在无线电返回:未定义不是一个函数
- 如果选择了所有无线电中的任何一个选项,则显示 Div
- 如何检查一个“特殊的无线电盒子”;组“;使用JavaScript
- 让一个控制器中的无线电隐藏/显示另一个控制器的元素
- 我有一个表单和一个按钮来添加它的副本.我希望重复的无线电输入具有变量名
- 想法有一个弹出框的无线电框的形式
- 表单仍然返回false,即使其中一个无线电正在被检查
- 使用无线电在一个页面上显示多个幻灯片
- 在. innerhtml中添加一个无线电
- 使用按钮选择一个随机的无线电
- 无线电输入的验证返回一个错误