控制单选按钮使用复选框?

时间:2018-01-25 09:04:15

标签: javascript jquery html checkbox openlayers-3

我想使用复选框控制单选按钮。我有一个复选框作为父级,四个单选按钮作为子级。如果我点击复选框然后动态检查第四个单选按钮和显示层,我也可以检查另一个带显示的单选按钮图层,如果我取消选中该复选框,则取消选中已选中的单选按钮,禁用图层。这就像打开图层3中的图层切换器一样。

我已经完成了一点点代码,但是在我选中复选框后,动态显示第4个单选按钮,剩下的单选按钮无法切换到其他单选按钮和图层。

$('#builtup input').change(function () {
    var layer = $(this).val();//all radiobuttons value
    var cRad = $("#ck");//checkbox id
    builtup.forEach(function (e) { //builtup array contains four layers builtup[1975,1990,2000,2014]
        var n = e.get('name');
        if (cRad.is(':checked')) {
            if (n == 2014) //fourth radio button value=2014
            {
                $('#bb4').attr('checked', true); //fourth radio button is checked
                e.setVisible(n == 2014);  //visible fourth layer
            }
            if (n == layer) //for switching between othe radio
            {

                $('input[type="radio"]').attr('checked', true);
                e.setVisible(n == layer);

            }
        }
        else  //uncheck all radio and disable layers
        {
            $('input[type="radio"]').attr('checked', false);
            e.setVisible(false);
        } 

HTML代码:

<ul id="builtup" class="list-unstyled"> <li><input type="checkbox" id="ck" name="layer1" value="chk">Built-up Area</li> <li><input type="radio" id="bb1" name="layer1" value="1975">1975</li> <li><input type="radio" id="bb2" name="layer1" value="1990">1990</li> <li><input type="radio" id="bb3" name="layer1" value="2000">2000</li> <li><input type="radio" id="bb4" name="layer1" value="2014">2014</li></ul>

感谢。

0 个答案:

没有答案