我想使用复选框控制单选按钮。我有一个复选框作为父级,四个单选按钮作为子级。如果我点击复选框然后动态检查第四个单选按钮和显示层,我也可以检查另一个带显示的单选按钮图层,如果我取消选中该复选框,则取消选中已选中的单选按钮,禁用图层。这就像打开图层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>
感谢。