使用jQuery检查是否选中了一组单选按钮

时间:2013-08-05 13:28:24

标签: jquery

我按以下方式设置了一个测验:

左边是问题的表格,右边是真或假单选按钮。

在测验的底部,我有一个第2步按钮,点击后,拉出一个Fancybox图层,在表格中询问该人的联系信息。

除非为每个问题选择一个答案(true或false),否则我想停止打开fancybox窗口。如果用户没有选择答案,我想显示一条消息,让他们知道必须在未回答的问题下面选择答案。

我尝试过使用此代码onClick:

$("input:radio:not(:checked)").parent().parent().append("ERROR")

唯一的问题是,这段代码没有识别出它们是单对的单选按钮,而不仅仅是个人,并且如果它们都没有被选中,它应该只标记错误。

以下是我的标记示例。

<tr class="alternate">
        <td>At school, you have to reminded to do your assignments.</td>
        <td class="centered"><input type="radio" class="radio" name="Question_1" value="True" /></td>
        <td class="centered"><input type="radio" class="radio" name="Question_1" value="False" /></td>
    </tr>

有关如何改进我的jQuery以实现此目的的任何建议吗?

3 个答案:

答案 0 :(得分:3)

尝试

$('tr').not(':has(:radio:checked)').addClass("ERROR");

演示:Fiddle

答案 1 :(得分:2)

例如,检查每个tr是否只有一个input已选中:

$("tr").each(function(i, el) {
  if($(this).find("input:checked").length != 1) {
    $(this).addClass("ERROR");
  }
});

答案 2 :(得分:0)

我有一个小逻辑,但这只是一个想法,

$(function() {
    var flag=true;
     $("tr").each(function(i, el) {
        if($('[name=Question_'+i+']:checked').length == 0){
           //show the error message here for that particular div
            //Set the flag= flase;
            flag= false;        
        }else{
            flag= true;   
        }
    });
    if(flag){
     //Success, all the questions are answered    
    }else{
     //Show the error Message.    
    }

    });

选中复选框后,您将标志状态为true。

@ArunPJohny,老兄,我也希望得到你的建议。