我有两个部分的问题,我希望在启用另一部分时禁用每个部分。他们之间的一种切换。 例如,如果选择第一部分的无线电,则禁用第二部分的所有元素(:输入),反之亦然。
我已经创建了这个但是并没有真正起作用,因为元素变量没有以正确的方式定位,就像(this)。
var variab = ('.radio-input');
$('.form-horizontal').on('change', variab, function() {
var element = $('.well :input').not('.radio-input');
var el = $(this).closest('.radioOption').find(element);
element.prop('disabled', function() {
return !el.is(this);
})
});
的 FIDDLE
答案 0 :(得分:1)
试试这个。
首先为class="radio-input"
的所有单选按钮指定相同名称,以便一次只能选择一个单选按钮。让我们说name="radio-input"
如下:
<input type="radio" class="radio-input" name="radio-input"/>
然后使用这个jQuery:
var variab = ('.radio-input');
$('.form-horizontal').on('change', variab, function() {
// disable all input under .well div except radio button
$(this).parents('.well').siblings().find(':input').not('.radio-input').prop('disabled', true);
// enable all input under .well div for current radio button selected.
$(this).parents('.well').find(':input').prop('disabled', false);
});
工作JSFiddle
答案 1 :(得分:1)
您可以使用此代码执行此操作,您需要为您的电台选项指定相同的名称
(function(){
$(".radio-input").on("change", function() {
var clicked = $(this).closest(".well")
var other = $(".well").not(clicked);
clicked.find("input[type='text']").prop("disabled", false);
other.find("input[type='text']").prop("disabled", true);
})
}());
一个工作示例here