jQuery新手,在这里。我不能让这个工作。这就是我用来禁用基于前一个单选按钮的单选按钮。
$('document').ready(function() {
$('input[name="a"]').change(function() {
if($(this).val() == '1') {
$('input[name="b"]').removeAttr('disabled');
} else {
$('input[name="b"][value="1"]').attr('disabled','disabled');
}
});
});
和
<input type="radio" name="a" value="1" /> A-1
<input type="radio" name="a" value="2" /> A-2
<input type="radio" name="b" value="1" /> B-1
<input type="radio" name="b" value="2" /> B-2
因此,如果我检查了A-2,则B-1被禁用。但是说我开始检查B-1,然后我检查了A-2,然后我想要B-1取消检查。我已尝试将其添加到:
if($('input[name="b"][value="1"]').is(':disabled')) {
$('input[name="b"][value="1"]').removeAttr('checked');
}
它完成了这项工作,但如果我先检查了它,它也会取消检查B-2。我只希望B-1不受控制。 (我希望这是有道理的。)
我做错了什么?
答案 0 :(得分:1)
$('input[name="a"]').change(function () {
var $b = $('input[name="b"]');
if (this.value == 1) {
$b.removeAttr('disabled');
}
else {
$('input[name="b"][value="1"]:checked').removeAttr('checked'); // the selector behavior is funky here...
$b.attr('disabled', true);
}
});
这可以随心所欲。
[value =“1”]选择器存在问题(使用时没有:选中),闻起来像jquery bug。但不要担心;)
答案 1 :(得分:0)
过去我不得不匆匆学习这样的东西:诀窍是制作一系列单选按钮:
family NAME
child ID0
child ID1
child IDn
在特定情况下,您可能正在寻找类似这样的内容(性别):
<input type="radio" name="gender" id='male' value="M" > Male
<input type="radio" name="gender" id='female' value"F" > Female
例如,喜欢:
<input type="radio" name="likes" id='tv' value="TV" > Watchs TV
<input type="radio" name="likes" id='radio' value="radio" > Listens to Radio
如果你有一个家庭的单选按钮,一旦点击一个,另一个是自动未被点击。
然后你可以通过
来检查$('#male').is(':checked') .... $('#female').is(':checked') .....
并且,你也可以通过点击这个来启动它们中的任何一个禁用或禁用另一个:$('#male')。click();