我想在 select 下拉选项时自动更改时间

I want to change the time automatically when i select the drop down option

$(function() {
  var select = $('select').val;
  if (select = 1) {
    $("#selectedTime").val("11:00 AM");
  }
});
else {
  $("#selectedTime").val("8:00 PM");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="" id="" class="select"> 
  <option value="">Select</option> 
  <option value="1">lunch</option> 
  <option value="2">Dinner</option> 
</select>
<input type="time" id="selectedTime">

你这里有不少问题:

  • 您的代码中间有一个随机 }); 导致语法错误
  • val 不是 属性,它是一个函数,所以应该是 .val()
  • val() 也是 returns 一个字符串,所以你应该比较 '1',而不是 1
  • =用于设置值。 =====用于比较
  • 您设置的时间值不应有AMPM,格式应为00:00,而不是0:00

最后,您的代码仅在页面加载时运行一次。相反,您需要挂钩 selectchange 事件。然后您可以执行您的代码并更新时间输入的 val(),如下所示:

$(function() {
  $('.select').change(function() {
    var select = $(this).val();
    if (select === '1') {
      $("#selectedTime").val("11:00");
    } else {
      $("#selectedTime").val("08:00");
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="" id="" class="select"> 
  <option value="">Select</option> 
  <option value="1">lunch</option> 
  <option value="2">Dinner</option> 
</select>
<input type="time" id="selectedTime">

这里有几件事:

首先,使用 select 选择器的 change 事件处理程序来触发更改。其次,确保使用 RFC3339 时间格式来设置值。第三,您的某些代码中存在一些语法错误(错误放置的大括号):

$(function() {
  var select = $('select').val;
  $( "select.select" ).change(function() {
  // Check input( $( this ).val() ) for validity here
    if ($(this).val() == 1) {
      $("#selectedTime").val("11:00:00");
    } else {
      $("#selectedTime").val("08:00:00");
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="" id="" class="select"> 
  <option value="">Select</option> 
  <option value="1">lunch</option> 
  <option value="2">Dinner</option> 
</select>
<input type="time" id="selectedTime">