在另一个选择标记中选择值时启用禁用选择

时间:2015-06-16 12:11:55

标签: javascript html html5 disabled-input

我有两个选择标记:

<select>
  <option value="car">car</option>
  <option value="truck">truck</option>
  <option value="moto">moto</option>
  <option value="none">none</option>
</select>

<select disabled>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

如您所见,我的第二个选择具有disabled属性。我想在javascript中,当我在第一次选择中选择了“car”选项时,第二次选择并启用了汽车选项。

如何使用javascript进行操作?

5 个答案:

答案 0 :(得分:3)

  1. ids放在selects上以轻松定位
  2. 在处理程序中,默认情况下,disable第二个select元素
  3. 如果第一个选择的当前val car ,则将disabled设置为 false
  4. $('#AutoType').change(function() {
      $('#Model').prop('disabled', true);
      if ($(this).val() == 'car') {
        $('#Model').prop('disabled', false);
      }
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <select id="AutoType">
      <option value="car">car</option>
      <option value="truck">truck</option>
      <option value="moto">moto</option>
      <option value="none">none</option>
    </select>
    
    <select id="Model" disabled>
      <option value="volvo">Volvo</option>
      <option value="saab">Saab</option>
      <option value="mercedes">Mercedes</option>
      <option value="audi">Audi</option>
    </select>

答案 1 :(得分:3)

JavaScript版本:

document.getElementById("one").onchange = function () {
  document.getElementById("two").setAttribute("disabled", "disabled");
  if (this.value == 'car')
    document.getElementById("two").removeAttribute("disabled");
};
<select id="one">
  <option value="car">car</option>
  <option value="truck">truck</option>
  <option value="moto">moto</option>
  <option value="none">none</option>
</select>

<select disabled id="two">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

jQuery版本:

$('#one').change(function() {
  $('#two').prop('disabled', true);
  if ($(this).val() == 'car') {
    $('#two').prop('disabled', false);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<select id="one">
  <option value="car">car</option>
  <option value="truck">truck</option>
  <option value="moto">moto</option>
  <option value="none">none</option>
</select>

<select id="two" disabled>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

答案 2 :(得分:1)

您需要为选择元素分配<many-to-one>,如:

id

答案 3 :(得分:1)

试试这个:

<form id="creation" name="creation" onchange="handleSelect()">
    <select name="select01" id="select01">>
      <option value="car">car</option>
      <option value="truck">truck</option>
      <option value="moto">moto</option>
      <option value="none">none</option>
    </select>

    <select name="select02" id="select02" disabled>
      <option value="volvo">Volvo</option>
      <option value="saab">Saab</option>
      <option value="mercedes">Mercedes</option>
      <option value="audi">Audi</option>
    </select>
    </form>

    function handleSelect() {
     if (this.value == '01') {
         document.getElementById('select02').disabled = true;
     } else {
         document.getElementById('select02').disabled = false;
     }
 }

答案 4 :(得分:0)

你想简单地使用一个前端框架,如Angular或React.js或Ember?如果你想做一些复杂的事情会更容易。

演示如下: http://jsfiddle.net/PxdSP/2244/

您需要做的就是在您的网站中包含angular.js

<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">

然后,您可以将逻辑分配给控制器,并决定您要对select或div执行的操作。