Javascript 检查是否有任何无线电组没有选择
如果用户试图提交表单而未提供任何广播组的选择,我将尝试发出警报。表单是动态的,无线电输入的名称也是动态的 我提出了以下解决方案:Javascript 检查是否有任何无线电组没有选择,javascript,jquery,Javascript,Jquery,如果用户试图提交表单而未提供任何广播组的选择,我将尝试发出警报。表单是动态的,无线电输入的名称也是动态的 我提出了以下解决方案: $("input:radio").each(function() { var name = $(this).attr("name"); if($("input:radio[name="+name+"]:checked").length == 0) { incomplete = true; } }); 但是,我收到以下控制台错误: Error: S
$("input:radio").each(function() {
var name = $(this).attr("name");
if($("input:radio[name="+name+"]:checked").length == 0) {
incomplete = true;
}
});
但是,我收到以下控制台错误:
Error: Syntax error, unrecognized expression: input:radio[name=response_text[11898]]
这里什么是语法上无效的
编辑:按要求添加HTML
<div class='form-group'>
<label for='11899'>2. The earth is flat</label>
<ol class='answers' id='11899' tabindex='2'>
<li class='answer'>
<input type='radio' name='response_text[11899]' value='766' id='766'>
<label for='766' class='answer-text'>True</label>
</li>
<li class='answer'>
<input type='radio' name='response_text[11899]' value='767' id='767'>
<label for='767' class='answer-text'>False</label>
</li>
</ol>
</div>
你的名字周围少了引号 改变
$("input:radio[name="+name+"]:checked")
到
您的完整代码应该如下所示
$("input:radio").each(function() {
var name = $(this).attr("name");
if($("input:radio[name='"+name+"']:checked").length == 0) {
incomplete = true;
}
});
你能添加你的htmltry在名字周围加引号吗?$input:radio[name='+name+']:选中或添加你的htmlPlease不要从你的问题中删除相关代码。此外,请查看元素的用途,以及属性的用途。解决方案的唯一缺点是反复检查组again@DavidThomas我正在使用中描述的元素。你觉得有什么需要改变的?谢谢就是这样
$("input:radio").each(function() {
var name = $(this).attr("name");
if($("input:radio[name='"+name+"']:checked").length == 0) {
incomplete = true;
}
});