我有一个简单的选择框:
<select class="select">
<option data-number="0" disabled>0</option>
<option data-number="1" disabled>1</option>
<option data-number="1" disabled>2</option>
</select>
如果数据编号为0,则应删除属性disabled
。我这样做的方式不起作用:
$(#'input').change(function () {
if ($('.select').data('number') == 0) {
alert("Hello! This working!!");
$(this).data('number').prop('disabled', false);
}
});
当我选择0
时,我没有收到警报(注意:我当然无法手动选择禁用选项,但系统会在输入更改时自动选择它)
答案 0 :(得分:5)
尝试使用选择器$(".select option")
,.filter()
$(".select option").filter(function() {
return $(this).data().number === 0
}).prop("disabled", false)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<select class="select">
<option data-number="0" disabled>0</option>
<option data-number="1" disabled>1</option>
<option data-number="1" disabled>2</option>
</select>
答案 1 :(得分:3)
只需替换:
if ($('.select').data('number') == 0) {
alert("Hello! This working!!");
$(this).data('number').prop('disabled', false);
}
使用:
$('select.select option[data-number=0]').prop('disabled', false);
$('select.select option[data-number=0]').prop('disabled', false);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<select class="select">
<option data-number="0" disabled>0</option>
<option data-number="1" disabled>1</option>
<option data-number="1" disabled>2</option>
</select>