在.each循环中限制一个.after()

时间:2014-01-12 17:58:16

标签: jquery

我有一系列单选按钮,每组都有不同的组名。 我想要任何收音机按钮与班级'无线电'要检查是否已选择任何该组。如果没有选择,则选择该组中的最后一个收音机并显示变量' promptOther'。这是有效的,但它不是只显示一个促销,而是实际显示每个单选按钮的提示。如何限制它只显示一个?

    $('.radio').each(function() {
        var radioName = $(this).attr('name');
        if (!$('input[name='+radioName+']:checked').val()) {
            $('input[name='+radioName+']:last').parent().after(promptOther);
            required = false;
        }
        else {
            $('.required-prompt', this).remove();
            required = true;            
        }
    });

1 个答案:

答案 0 :(得分:1)

您可以记住您已经处理过哪些群组:

var handled = []; // Create an array
$('.radio').each(function() {
        var radioName = $(this).attr('name');
        if( $.inArray(radioName, handled) == -1 ) { // Check if we handled it
            if (!$('input[name='+radioName+']:checked').val()) {
                $('input[name='+radioName+']:last').parent().after(promptOther);
                required = false;
            }
            else {
                $('.required-prompt', this).remove();
                required = true;            
            }
            handled.push(radioName); // Push to array
        }
    });