Jquery 选择“选择”选项时删除字段集上的禁用属性
我有两套野外作业。选择第一个字段中的选择选项后,我希望第二个字段集处于启用状态。但我的代码不起作用,即第二个字段集仍处于禁用状态。有人能帮忙吗 这就是我迄今为止所尝试的:Jquery 选择“选择”选项时删除字段集上的禁用属性,jquery,Jquery,我有两套野外作业。选择第一个字段中的选择选项后,我希望第二个字段集处于启用状态。但我的代码不起作用,即第二个字段集仍处于禁用状态。有人能帮忙吗 这就是我迄今为止所尝试的: <div class="col-xs-6 col-lg-3"> <form role="form" class="comments"> <fieldset> <div class="form-group">
<div class="col-xs-6 col-lg-3">
<form role="form" class="comments">
<fieldset>
<div class="form-group">
<select class="form-control">
<option>Comments</option>
<option class="activate">Comments 1</option>
<option class="activate">Comments 2</option>
<option class="activate">Comments 3</option>
</select>
</div> <!--/.form-group-->
</fieldset>
</form>
</div> <!--/.col-xs-6-->
<div class="col-xs-6 col-lg-3">
<form role="form">
<fieldset id="depend" disabled="true">
<div class="form-group">
<select class="form-control">
<option>is greater than</option>
<option>greater than 4</option>
<option>greater than 5</option>
<option>greater than 6</option>
</select>
</div> <!--/.form-group-->
</fieldset>
</form>
</div> <!--/.col-xs-6-->
快速修复-
removeAttr
只需要您想要删除的属性名。执行removeAttr('disabled')
或attr('disabled',false)
但是,由于.activate
始终位于
内,因此可以将事件绑定到
标记。您还可以提高选择器的效率,使其运行更快:
$('.comments').find('select').on('change', function() {
if ($(this).find(':selected').hasClass('activate')) {
$('#depend').removeAttr('disabled');
}
}).trigger('change'); // run on load
由于看起来您只会启用
框,而不会再次禁用它,因此可以将更改()
事件处理程序附加到该框。此外,在更改禁用的属性时,还应使用prop()
方法
如果要在用户再次选择第一个选项时禁用
框,也很容易。只需使用类找到:选中的选项。激活。如果此选择的长度为1,则已选择有效选项:
$(document).ready(function() {
$('.comments .form-control').change(function(){
var enable = !$(this).find('option:selected.activate').length;
$('#depend').prop('disabled', enable);
});
});
很高兴能提供帮助(:谢谢Joe,我尝试了这个,但我需要Georges Answer中的change函数假设您使用的是jQuery的一半新版本(>1.7.2),那么。是绑定事件的推荐方式。。change
已被否决更改已被否决?谢谢Joe..将修改我的代码
$(document).ready(function() {
$('.comments .form-control').change(function(){
var enable = !$(this).find('option:selected.activate').length;
$('#depend').prop('disabled', enable);
});
});