禁用带选择的输入字段

时间:2017-10-18 11:23:28

标签: javascript jquery html forms disabled-input

你能告诉我在这里做错了什么吗?

我想在Selection使用第二个选项(Treibstoffverbrauch in Liter)时禁用输入字段。



$(document).ready(function() {
  $('select[name="Kalkulationsart"]').on('change', function() {
    var eins = $(this).val();
    if (eins == "Kalkulation per Treibstoffverbrauch in Liter") {
      $('#VerbrauchinL').attr('disabled', 'disabled');
    } else {
      $('#VerbrauchinL').removeAttr('disabled');
    }
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="KATitle">Kalkulationsart</p>
<select name="Kalkulationsart" id="Kalkulationsart" size="1" type="text">
  <option value="0">Kalkulation per Verbrauch/100km</option>
  <option value="others">Kalkulation per Treibstoffverbrauch in Liter</option>
</select>
<p id="KMTitle" for="VerbrauchinL">Kraftstoffverbrauch in Liter/100km</p>
<input type="number" name="Verbrauch in L" id="VerbrauchinL" onkeyup="TKPJ()">
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:0)

当您使用$(this).val()时,它会返回value元素的option属性。因此,您需要将其与0others进行比较。

请参阅下面的代码:

$(document).ready(function() {
  $('select[name="Kalkulationsart"]').on('change', function() {
    var eins = $(this).val();
    console.log(eins);
    if (eins == "others") {
      $('#VerbrauchinL').attr('disabled', 'disabled');
    } else {
      $('#VerbrauchinL').removeAttr('disabled');
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="KATitle">Kalkulationsart</p>
<select name="Kalkulationsart" id="Kalkulationsart" size="1" type="text">
                					<option value="0">Kalkulation per Verbrauch/100km</option>
                					<option value="others">Kalkulation per Treibstoffverbrauch in Liter</option>

                				</select>

<p id="KMTitle" for="VerbrauchinL">Kraftstoffverbrauch in Liter/100km</p>
<input type="number" name="Verbrauch in L" id="VerbrauchinL" onkeyup="TKPJ()">

答案 1 :(得分:0)

您的<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.4.3/Rx.js"></script>值与您比较的值不同(select

others
$(document).ready(function() {
  $('#Kalkulationsart').on('change', function() {
    $('#VerbrauchinL').prop('disabled', $(this).val() == "others");
  });
});

答案 2 :(得分:0)

您的代码似乎没问题,您需要检查复选框(others)中的值而不是使用的标签(Kalkulation per Treibstoffverbrauch in Liter)。

我更改了应用属性disabled的方式,我们可以在truefalse之间切换,以应用/取消应用该属性。

&#13;
&#13;
$(document).ready(function() {
  $('select[name="Kalkulationsart"]').on('change', function() {
    var eins = $(this).val();
    if (eins === "others") {
      $('#VerbrauchinL').attr('disabled', true);
    } else {
      $('#VerbrauchinL').attr('disabled', false);
    }
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="KATitle">Kalkulationsart</p>
<select name="Kalkulationsart" id="Kalkulationsart" size="1" type="text">
    <option value="0">Kalkulation per Verbrauch/100km</option>
    <option value="others">Kalkulation per Treibstoffverbrauch in Liter</option>
</select>
<p id="KMTitle" for="VerbrauchinL">Kraftstoffverbrauch in Liter/100km</p>
<input type="number" name="Verbrauch in L" id="VerbrauchinL" onkeyup="TKPJ()">
&#13;
&#13;
&#13;

答案 3 :(得分:0)

将“每升级的Treibstoffverbraph中的Kalkulation”更改为“其他人” 如果在选项中提供值,则val()给出值