如果选中单选按钮,则jQuery addClass

Posted

技术标签:

【中文标题】如果选中单选按钮,则jQuery addClass【英文标题】:jQuery addClass if radio button checked 【发布时间】:2011-12-19 21:45:35 【问题描述】:

谁能帮我解决这个问题?

$(document).ready(function() 
    if(
        $("input.check").is(":checked"))
            $(this).parent().addClass("question-box-active");
    
);

我正在尝试将一个类 (question-box-active) 添加到 .check (一个单选按钮) 的父级,前提是它被选中。如果我使用警报进行测试,它可以正常工作,但我无法设法添加该类。

感谢大家的帮助。

更新:这是表单的 html。我只复制了 48 个 div 中的 3 个。您可能已经猜到,如果在页面加载时已选中单选按钮,我正在尝试向问题框添加一个类。到目前为止还没有运气。

<div class="question-box">
    <input class="check" type="checkbox" name="question-1" value="1" <?php if(isset($_POST['question-1'])) echo "checked"; ?> />
    <span class="question">1. Save a rainforest or grow organic vegetables</span>
</div>

<div class="question-box alt">
    <input class="check" type="checkbox" name="question-2" value="1" <?php if(isset($_POST['question-2'])) echo "checked"; ?> />
    <span class="question">2. Solve complicated math problems</span>
</div>

<div class="question-box">
    <input class="check" type="checkbox" name="question-3" value="1" <?php if(isset($_POST['question-3'])) echo "checked"; ?> />
    <span class="question">3. Act in a movie, play, or television show</span>
</div>

【问题讨论】:

【参考方案1】:

试试类似的东西

$('input.check').is(':checked').each(function()  
    $(this).parent().addClass('question-box-active');
);

【讨论】:

【参考方案2】:

我认为$(this) 不是指您的情况下的单选按钮

您可以绑定单选按钮的点击事件并决定从那里做什么...

$(document).ready(function()
    $("input.check").click(function()
        if($(this).is(":checked"))
            $(this).parent().addClass("question-box-active");
        
    );
);

【讨论】:

感谢您的回答卡夫曼。表单设置为在单击提交后刷新页面以显示表单的结果。我已经有一个单击功能,当用户主动检查单选按钮时,它会添加问题框活动类。但是当页面刷新结果时,即使选中了按钮,该类也会消失。【参考方案3】:

您使用的 this 位于 ready 处理程序回调的函数上下文中,因此它没有像您预期的那样指向 input.check

试试这样的方法:

$(document).ready(function() 

    var foo = $('input.check');

    if ( foo.is(':checked') ) 
        foo.parent().addClass('question-box-active');
    

);

这是假设您的代码逻辑是正确的。但是,我假设您正在尝试做与 Doug 在另一个答案中提供的类似的事情。发布一些 HTML 可能有助于澄清。

【讨论】:

感谢理查德的帮助。我将 HTML 添加到我原来的问题中,希望这能有所帮助。我喜欢 jQuery,但我还不太擅长。我尝试了您提供的代码,但该课程已添加到所有父母,甚至是那些未选中单选按钮的父母。我仍然在玩它,看看我是否可以挖掘出一些东西,但是如果你有任何其他想法,请告诉我。快把我逼疯了。【参考方案4】:

这会起作用。

$(document).ready(function() 

    var foo = $('input.check:checked');

    if ( foo.is(':checked') ) 
        foo.parent().addClass('question-box-active');
    
);

【讨论】:

谢谢!这实际上找到了选中的单选按钮,而不仅仅是检查页面上是否检查了输入。这使我可以在选中的单选按钮上应用一个类。 我觉得这段代码更令人满意:***.com/questions/3376412/…

以上是关于如果选中单选按钮,则jQuery addClass的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 单选组验证和启用选项,如果某些单选检查(jsfiddle 提供)

jQuery怎样判断按钮是不是被选中

如果选中单选按钮,则停止表单提交

jQuery-如果选中了复选框,则删除活动类(多个条件)

jQuery如何获取选中单选按钮radio的值

JavaScript - 如果选中任何复选框,则选择单选按钮