如何根据下拉菜单中的输入启用/禁用特定字段


How to enable/disable a certain field(s) base on input from drop-down menu?

下拉菜单id=付款_方法

  • 收款人支付
  • 通过发票收费

下拉菜单id=shipping_carrier

  • 联邦快递
  • DHL

输入字段id=发货_编号__________________

目标:

如果用户选择通过发票收费

  • 禁用shipping_carrier
  • 将Fedex设置为默认值
  • hide()我的发货号输入

否则,

  • 启用shipping_carrier
  • 启用运输编号输入(必需)

代码

<script>
  var logistic = function () {
    if ($( "#payment_method option:selected" ).text("Charge through invoices")) {
        $('#shipping_carrier').prop('disabled', false);
    else {
        $('#shipping_carrier').prop('disabled', 'disabled');
    }
  };
  $(logistic);
  $("#paid_by_reciever").change(logistic);

</script>

开始:

$("#payment_method").change(function() {
  console.log($("#payment_method option:selected").val());
  if ($("#payment_method option:selected").val() == 2) {
    $('#shipping_carrier').prop('disabled', 'disabled');
    $('#shipping_carrier').val(1);
    $('#shipping_number').hide();
  } else {
    $('#shipping_carrier').prop('disabled', false);
    $('#shipping_number').show();
  }
});
label {
  display: block;
  margin-bottom: 10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label>
	Payment method: <br />
	<select id="payment_method" name="payment_method">
		<option value="1">paid by reciever</option>
		<option value="2">charge through invoices</option>
	</select>
</label>
<label>
	Shipping Carrier
	<select id="shipping_carrier" name="shipping_carrier">
		<option value="1">Fedex</option>
		<option value="2">DHL</option>
	</select><br />
</label>
<label>
	Shipping number<br />
 	<input type="text" name="shipping_number" id="shipping_number" value="" />
</label>