2012-11-09 100 views
0

我的页面上有两个radio按钮。当我选择第一个我想要它禁用一个div内的一组input字段。当我选择第二个radio时,我希望它禁用其他元素。但是这些元素并不嵌套在div里,其中radio按钮所在。选择下一个元素,从某个元素开始

我似乎无法找出禁用正确元素的好方法。

下面是一个例子: http://tinkerbin.com/tvx5EwHR

任何人任何想法如何,我可以禁用正确输入字段?

请注意,我宁愿不使用parent().parent()作为解决方案。因为当我稍后决定改变DOM布局时,这很容易破坏我的JS。

回答

0

与其尝试对选择器进行任何复杂操作,我只是稍微更新一下DOM。像

<input type="radio" ... data-disable="element1"/> 
... 
<div class="element1"> 
... 

东西然后,在jQuery的你可以得到类的元素后首先使所有的输入,$(this).data('disable')禁用。

0

请试试这个http://tinkerbin.com/xQjeYD6C

$(function() { 
    $('.opt1').click(function() { 
    $('.elements1').show(); 
    $('.elements2').hide(); 
    }); 

    $('.opt2').click(function() { 
    $('.elements1').hide(); 
    $('.elements2').show(); 
    }); 
}); 
+0

现在请检查或以其他方式请点击运行按钮,然后检查 –

+0

当我点击第一个容器中的收音机时,它也隐藏了第二个容器中的元素。我不希望这种情况发生。收音机只应隐藏/显示它们所属的容器中的元素。 – Vivendi