如何禁用无线电组中的一个无线电输入?
<input type="radio" name="radiogrp" value="op1" checked="checked">Option1
<input type="radio" name="radiogrp" value="op2"> Option2
<input type="radio" name="radiogrp" value="op3" > Option3
<input type="radio" name="radiogrp" value="op4"> Option4
我的问题是我想在点击任何其他按钮后禁用option1
例如:
当我选择option2时,应禁用option1
答案 0 :(得分:5)
选中Fiddle我刚刚添加了
如果这不是您的意图,请告诉我
$('.rd').click(function(){
$('.rd[value="op1"]').attr('disabled', 'disabled');
});
答案 1 :(得分:1)
$(":radio").change(function(){
$(":radio[name='radiogrp']").slice(0,1).attr("disabled","disabled");
});
答案 2 :(得分:1)
var radios = $('input[type="radio"][name="radiogrp"]');
radios.change(function() {
if (this.value != "op1") {
radios.filter('[value="op1"]').prop('disabled', true);
}
});
我缓存了单选按钮,所以我不需要两次查询DOM。
因为在改变之后,没有办法回来,这是更有趣的方式:
var radios = $('input[type="radio"][name="radiogrp"]');
var first = $('input[type="radio"][name="radiogrp"][value="op1"]');
radios.not(first).change(function() {
alert('changed'); // getting called only once.
first.prop('disabled', true);
radios.unbind('change');
});
答案 3 :(得分:1)
非常简单,使用jQuery的属性选择器。以下是禁用值为op3
$('input[value="op3"]').attr('disabled', 'disabled');
以下是解决方案
var radios = $('input[name=radiogrp]'); //Cache all the radio button
radios.click(function() {
//Attach a function to the click event of all radio button
if(this.value!='op1') { //Check if currently click button has value of op1
radios.filter('[value="op1"]').prop('disabled', true); //if not disable the first
}
});
答案 4 :(得分:1)
尝试
$('input[value="op2"]').click(function(e)
{
$('input[value="op1"]').attr('disabled', 'disabled');
});
答案 5 :(得分:1)
我正在使用具有花哨动态样式的jquery mobile,我发现在执行禁用后,我需要使用checkboxradio(&#34; refresh&#34;)方法调用显式发出刷新,以便样式将反映改变。但是,您可以链接方法调用,因此它可能如下所示:
$('.rd').click(function(){
$('.rd[value="op1"]').attr('disabled', 'disabled').checkboxradio("refresh");
});
虽然我很欣赏gdoron更深入,更技术,更高效,更全面的方法,但我相信有时候(有时候)更容易阅读和更短编码Jibi Abraham的方法是有道理的,特别是一个轻量级的情况。
我意识到这不是一个明确的答案,但我还没有足够的声誉来做评论。