JavaScript onchange 更新变量值

JavaScript onchange update variable value

感谢您阅读本文。 我有一个带有日期选择器日历的输入,它有 minDays 和 MaxDays 的变量,允许用户 select 一定天数。我有一个 html 表单,让用户可以选择 select 他们想住多少晚,所以在 onChange 上我希望它将 maxDays 更新为新值。

<select id="nights" name="nights" class="form-control">
    <option selected disabled>Select Nights</option>
    <option value="4">3 Nights</option>
    <option value="5">4 Nights</option>
    <option value="8">7 Nights</option>
</select>

我用来select日历的javascript如下

<script>
var dateToday = new Date();
var exclude = ["23-06-2021"]
var picker = new Lightpick({
    format: 'DD-MM-YYYY',
    field: document.getElementById('startdate'),
    secondField: document.getElementById('enddate'),
    singleDate: false,
    minDays: 4,
    maxDays: 8,
    numberOfColumns: 3,
    numberOfMonths: 3,
    selectForward: true,
    minDate: dateToday,
    disableDates: exclude,
    //disableWeekends:true,
    onSelect: function(start, end){
        var str = '';
        str += start ? start.format('Do MMMM YYYY') + ' to ' : '';
        str += end ? end.format('Do MMMM YYYY') : '...';
        document.getElementById('result-3').innerHTML = str;
    }
});

我已将 'maxDays' 的默认值设置为 8,这是我需要从 select 框中更新到新值的值。

任何帮助将不胜感激,我的 javascript 不太好。

非常感谢 舒卡

每当 select-box 值发生变化时,您可以使用 picker.reloadOptions({"maxDays": value }) 更新您的 maxDays 内部选择器。

演示代码 :

var dateToday = new Date()
var exclude = ["23-06-2021"]
var picker = new Lightpick({
  format: 'DD-MM-YYYY',
  field: document.getElementById('startdate'),
  secondField: document.getElementById('enddate'),
  singleDate: false,
  minDays: 4,
  maxDays: 8,
  numberOfColumns: 3,
  numberOfMonths: 3,
  selectForward: true,
  minDate: dateToday,
  disableDates: exclude,
  onSelect: function(start, end) {
    var str = '';
    str += start ? start.format('Do MMMM YYYY') + ' to ' : '';
    str += end ? end.format('Do MMMM YYYY') : '...';
    document.getElementById('result-3').innerHTML = str;
  }
});

function myFunction(value) {
  //use this 
  picker.reloadOptions({
    "maxDays": value //set new value
  })
}
<link rel="stylesheet" type="text/css" href="https://unpkg.com/lightpick@latest/css/lightpick.css">

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/lightpick@latest/lightpick.js"></script>
<select id="nights" name="nights" class="form-control" onchange="myFunction(this.value)">
  <option selected disabled>Select Nights</option>
  <option value="4">3 Nights</option>
  <option value="5">4 Nights</option>
  <option value="8">7 Nights</option>
</select>

<input type="text" id="startdate" placeholder="Start">
<input type="text" id="enddate" placeholder="End">

<div id="result-3"></div>