首页 > 解决方案 > 如何通过选择选项禁用/启用输入?

问题描述

当从下拉列表中选择某个选项时,我正在尝试启用输入

我写了解决这个问题的代码,但它不起作用。这是我的代码

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<body>

<select class="form-control" id="dropDown">
      <option id="n" value="0"> Тип N </option>
      <option id="p" value="1"> Тип P </option>
      <option id="c" value="2"> Тип C </option>
      <option id="v" value="3"> Тип V </option>
      <option id="t" value="4"> Тип T </option>
      <option id="s" value="5"> Тип S </option>
</select>

   <div>
      <label class="control-label">
          <span th:text="#{size}"></span>
      </label>
     <input id="size" type="text" class="form-control" />
   </div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 <script th:inline="javascript">

  $('#dropdown').change(function() {
       if( $(this).val() === 1) {
           $('#size').props( 'disabled', false );
       } else {
            $('#size').props( 'disabled', true );

        }
    });

</script>
</body>
</html>

所以我希望当我选择“Тип P”选项时,输入(id =“size”)应该被启用,如果选择了其他选项,它应该保持禁用状态

标签: javascriptjqueryhtml

解决方案


===是严格的相等运算符,它同时检查valuetype,并且由于元素的值始终是字符串,因此将其与数字进行比较总是会失败。

请注意:您也有错字props,应该是prop。控件 ( ) 和代码 ( ) 中使用的属性id不匹配。dropDowndropdown

改变

if( $(this).val() === 1) {

if( $(this).val() === "1") {

推荐阅读