[选择选项后无法使用jQuery禁用输入元素

问题描述 投票:0回答:3

我为此使用jquery 3.4.1选择不同的值时,我试图禁用输入元素。

$(document).ready(function() {
  $('form input[name="spouseName"]').prop("disabled", true);
  $('form input[name="children"]').prop("disabled", true);
  $("form select option [value='married']").change(function() {
    $('form input[name="spouseName"]').prop("disabled", false);
    $('form input[name="children"]').prop("disabled", false);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<form>
  <select class="form-control" name="maritalStatus" id="maritalStatus">
    <option value="Married">Married</option>
    <option selected value="UnMarried">UnMarried</option>
    <option value="Male Widow">Male Widow</option>
    <option value="FeMale Widow">FeMale Widow</option>
    <option value="Divorcee">Divorcee</option>
  </select>
  <input type="text" class="form-control" name="spouseName" id="spouseName" aria-describedby="spName" placeholder="Spose Name">
  <input type="text" class="form-control" name="children" id="children" aria-describedby="childrens" placeholder="Children">
</form>
javascript jquery html element
3个回答
1
投票

change事件上,您应检查所选选项的值。也可以使用.removeAttr()来删除属性。

尝试以下方式:

.removeAttr()
$(document).ready(function(){
  $('form input[name="spouseName"]').prop("disabled", true);
  $('form input[name="children"]').prop("disabled", true);

  $("form select").change(function(){
    if($(this).val() == 'Married'){
      $('form input[name="spouseName"]').removeAttr("disabled")
      $('form input[name="children"]').removeAttr("disabled")
    }
    else{
      $('form input[name="spouseName"]').prop("disabled", true);
      $('form input[name="children"]').prop("disabled", true);
    }
  });
});

0
投票

您没有提到什么不起作用,但是您的onChange无法起作用。

css选择器有一个空格

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form> <select class="form-control" name="maritalStatus" id="maritalStatus"> <option value="Married">Married</option> <option selected value="UnMarried">UnMarried</option> <option value="Male Widow">Male Widow</option> <option value="FeMale Widow">FeMale Widow</option> <option value="Divorcee">Divorcee</option> </select> <input type="text" class="form-control" name="spouseName" id="spouseName" aria-describedby="spName" placeholder="Spose Name"> <input type="text" class="form-control" name="children" id="children" aria-describedby="childrens" placeholder="Children"> </form>

应该是:

option [value='married']


0
投票

您可以根据条件尝试所需的解决方案。请检查以下代码

option[value='married']
$(document).ready(function() {
  $('form input[name="spouseName"]').prop("disabled", true);
  $('form input[name="children"]').prop("disabled", true);
  $("#maritalStatus").change(function() {
  		if($(this).val() !=='UnMarried'){
  			$('form input[name="spouseName"]').prop("disabled", false);
    $('form input[name="children"]').prop("disabled", false);		
  		}else{
  			$('form input[name="spouseName"]').prop("disabled", true);
    $('form input[name="children"]').prop("disabled", true);
  		}
    
  });
});
© www.soinside.com 2019 - 2024. All rights reserved.