Jquery已禁用表单中的选择标记
我有一张表格Jquery已禁用表单中的选择标记,jquery,Jquery,我有一张表格 <form action="#" method="POST"> <select id="packageId"> <option value="0">Option 0</option> <option value="1">Option 1</option> </select> <select id="duration"> <option value
<form action="#" method="POST">
<select id="packageId">
<option value="0">Option 0</option>
<option value="1">Option 1</option>
</select>
<select id="duration">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</form>
此Jquery无法首先设置disabled=true。我必须单击选项1,然后返回选项0以使其脱盐。有人能帮我吗?使用.prop()
$(文档).ready(函数(){
$(文档).on('change','#packageId',function(){
if($(this.val()='0'){
$(“#持续时间”).prop('disabled',true);
}否则{
$(“#持续时间”).prop('disabled',false);
}
});
});代码>
选项0
选择1
1.
2.
3.
4.
对于初始设置禁用状态,您需要在添加更改处理程序后触发更改事件
如果没有动态添加select元素,则不需要使用事件委派
$(document).ready(function () {
$('#packageId').on('change', function () {
$("#duration").prop('disabled', $(this).val() != '1');
}).trigger('change');
});
演示:
如果元素是动态添加的,那么您需要在添加select元素后触发change事件
$(document).ready(function () {
$(document).on('change', '#packageId', function () {
$("#duration").prop('disabled', $(this).val() != '1');
})
//then once the select elements are added trigger the event
$('#packageId').trigger('change');
});
演示:您应该使用.prop(),无论元素是动态创建的,它都是动态创建的。嗯,奇怪,在您的小提琴中,它可以按照我的要求工作,但在我的代码中不是。在我的代码中,它被禁用为initial,这一部分是正确的,但无论我如何使用packageId更改Select标记,它仍然被禁用。啊,我认为你的方式在引导Select中崩溃了。在select标记中,我删除了“class='selectpicker'”,它工作得很好,当我重新打开它时,问题就出现了。你知道为什么吗?
$(document).ready(function () {
$(document).on('change', '#packageId', function () {
$("#duration").prop('disabled', $(this).val() != '1');
})
//then once the select elements are added trigger the event
$('#packageId').trigger('change');
});