【问题标题】:Is there a way to populate checkboxes based on a radio button click?有没有办法根据单选按钮单击来填充复选框?
【发布时间】:2012-10-09 23:42:07
【问题描述】:

我有三个单选按钮和 17 个复选框。我希望选中的单选按钮可以填充一组复选框,同时仍为用户提供一种在必要时选择更多复选框的方法。有没有办法做到这一点?

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    JavaScript 有能力做到这一点(通过 jQuery 变得更容易)。您需要在单选按钮上设置“onClick”功能,然后可以设置复选框的选中值。例如,此功能将根据单击的单选按钮打开/关闭复选框。

    function CheckBoxes(selection) {
        if(selection == 1) {
            // Checks checkbox with id "CheckBoxID"
            $("#CheckBoxID").prop("checked", true);
            // Unchecks checkbox with id "CheckBoxID2"
            $("#CheckBoxID2").prop("checked", false);
        }
        else if(selection == 2) {
            // Unchecks checkbox with id "CheckBoxID"
            $("#CheckBoxID").prop("checked", false);
            // Checks checkbox with id "CheckBoxID2"
            $("#CheckBoxID2").prop("checked", true);
        }
        // etc, depending on how many radio buttons and checkboxes you have
    }
    

    可以通过以下方式使用单选按钮调用此函数:

    <input type="radio" id="radio1" name="someName" value="someValue1" onclick="CheckBoxes(1)">
    <input type="radio" id="radio2" name="someName" value="someValue2" onclick="CheckBoxes(2)">
    <input type="radio" id="radio3" name="someName" value="someValue3" onclick="CheckBoxes(3)">
    

    这就是我的想法,其他人会告诉你不要在 html 中分配 OnClick,而是使用 JavaScript 订阅它:

    $('#radio1').click(function(){CheckBoxes(1)});
    

    JSFiddle that shows it off properly.

    【讨论】:

    • 不喜欢“javascript 可以做到这一点,但使用 jquery 会更容易”的措辞。
    • @ChrisFarmer,我同意这听起来有点不对劲。
    【解决方案2】:

    Check this FIDDLE

    $('#a,#b,#c').on('click', function() {
    
        if( $(this).is(':checked')){
           $('.'+ this.id).show();
        }
    });​
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多