如何检查jQuery中是否检查了每个组中的单选按钮?

多个组或单选按钮

Question 1

Question 2

如何检查jQuery是否检查了每个组中的单选按钮?

谢谢。

我是这样做的:

 var all_answered = true; $("input:radio").each(function(){ var name = $(this).attr("name"); if($("input:radio[name="+name+"]:checked").length == 0) { all_answered = false; } }); alert(all_answered); 

这样您就不需要依赖兄弟或父标签了。 如果您的单选按钮与任何标签混合在一起,它仍然可以正常工作。 你可以玩它 。

你可以循环遍历每个问题(

)并使用带有.filter()来查看它的答案,看看是否有任何:checked ,如下所示:

 var noAns = $("h1").filter(function() { return $(this).nextUntil("h1").filter(":checked").length == 0; }); 

这将返回所有没有为他们选择无线电的问题,如果你想查看是否有任何答案,你可以查看.length ,例如:

 if(noAns.length > 0) { alert(noAns.length + " question(s) don't have answers!"); } 

你可以在这里尝试一下 。


您也可以稍微扩展一下,例如突出显示错过的问题:

 if(noAns.css({ color: "red" }).length > 0) { 

并使用$("h1").css({ color: "" })在下一轮清除它, 你可以在这里尝试一下 。

formdiv包裹每个广播组:

 

Question 1

Question 2

然后在jQuery中:

 if ($('#question1 input[type=radio]:checked')[0] != undefined && $('#question2 input[type=radio]:checked')[0] != undefined) { ... } 

我通过“GG”赞成了答案。 但是,您无需更改HTML。

只需按[名称]选择(应该是唯一的):

 if ($("input[name='radio1']:checked")[0] != undefined && $("input[name='radio2']:checked")[0] != undefined) { ... }