Py学习  »  Jquery

Jquery只在依赖的select下拉列表上触发一次

Roni X • 5 年前 • 1465 次点击  

有三个下拉列表,其中两个取决于要显示的第一个选择。一旦我在第一个下拉列表中选择一个名为“category”的值,其他两个下拉列表将被启用,但是如果我在category上再次选择空值,其他两个下拉列表将保持启用状态。

<script>
        $(document).ready(function() {
            $("select").on("change", function() {
                if  ($("select[name='category']").val() == "") { 
                    $("select[name='subcategory']").attr("disabled");
                    $("select[name='name']").attr("disabled");
                } else {
                    $("select[name='subcategory']").removeAttr("disabled");
                    $("select[name='ename']").removeAttr("disabled");
                }
            });
        });
    </script>
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55465
 
1465 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Mamun
Reply   •   1 楼
Mamun    5 年前

属性与属性

查询1.6 .prop() 方法提供了显式检索属性值的方法,而 .attr() 检索属性。

你可以试着用 .prop() :

.prop('disabled', 'disabled');

演示: (根据评论中的讨论)

$(document).ready(function() {
  $("select[name=category]").on("change", function() {
    if($(this).val() == "") { 
      $("select[name=subcategory]").prop('disabled', 'disabled');
      $("select[name=ename]").prop('disabled', 'disabled');    
    } else {
      $("select[name=subcategory]").removeAttr("disabled");
      if($("select[name=subcategory]").val() == "") { 
        $("select[name=ename]").prop('disabled', 'disabled');
      } else {
        $("select[name=ename]").removeAttr("disabled");
      }
    }
    
  }).trigger('change');
  $("select[name=subcategory]").on("change", function() {
    if($(this).val() == "") { 
      $("select[name=ename]").prop('disabled', 'disabled');
    } else {
      $("select[name=ename]").removeAttr("disabled");
    }
  }).trigger('change');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="category">
  <option value="">Select</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>
<select name="subcategory">
  <option value="">Select</option>
  <option value="a">A</option>
  <option value="b">B</option>
</select>
<select name="ename">
  <option value="">Select</option>
  <option value="1">1</option>
  <option value="2">2</option>
</select>