如何检查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: "" })
在下一轮清除它, 你可以在这里尝试一下 。
用form
或div
包裹每个广播组:
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) { ... }