0

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

一张表格,左边是问题,右边是 True 或 False 单选按钮。

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

我想停止打开花式框窗口,除非为每个问题(真或假)选择了一个答案。如果用户尚未选择答案,我想显示一条消息,让他们知道必须在尚未回答的问题下方选择答案。

我试过在点击上使用这个代码:

$("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 以实现这一点的任何建议?

4

3 回答 3

3

尝试

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

演示:小提琴

于 2013-08-05T13:32:59.200 回答
2

例如,检查每个检查tr是否恰好有一个input检查:

$("tr").each(function(i, el) {
  if($(this).find("input:checked").length != 1) {
    $(this).addClass("ERROR");
  }
});
于 2013-08-05T13:31:42.770 回答
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.    
    }

    });

当复选框被选中时,您将获得标志状态为真。

@ArunPJohny,伙计,我也想从你那里得到建议。

于 2013-08-05T13:52:44.823 回答