如何使用jquery从我的选择框中删除disabled属性?

时间:2015-08-21 13:39:42

标签: jquery

我有一个简单的选择框:

   <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时,我没有收到警报(注意:我当然无法手动选择禁用选项,但系统会在输入更改时自动选择它)

2 个答案:

答案 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>