【问题标题】:Change the dropdown value based on the selected date in jquery datepicker根据jquery datepicker中的选定日期更改下拉值
【发布时间】:2020-08-12 06:55:24
【问题描述】:

我想根据日期更改下拉值从 29-08-2020 到 08-09-2020,下拉值将被更改。当用户点击 29-08-2020 到 08-09-2020 从日期选择器必须更改下拉列表的值。用户单击下拉列表值时剩余的剩余日期会有所不同。我该怎么做?这是代码。在下面的代码中,下拉菜单会根据日期更改。我如何根据日期更改下拉菜单。仅从 29-08-2020 到 08-09-2020

<script type="text/javascript">
    $(function () {
        var date = new Date();
        var dayNo = date.getDay();
        var mindate = (5 - dayNo);
        var d = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
        var event = ['6.00 am : English', '7.00 am : Kannada', '8.00 am: Tamil'];
        var event1 = [' 7.00 am : Kannada', '9.00 am: English', '11.00 am: Tamil'];

        //Lest assume this is  event from database
        $("#datepicker").datepicker({
            dateFormat: 'yy-mm-dd',

            minDate: mindate,
            onSelect: function (dateText, inst) {
                var today = new Date(dateText);
                var a = (d[today.getDay()]);
                $('#slDay').val(d[today.getDay()]);
                var html = '';
                $('#slDay').html('');
                if (d[today.getDay()] == 'sun')
                    $.each(event1, function (index, value) {
                        html += '<option value="' + value + '">' + value + '</option>'

                    });

                if (d[today.getDay()] == 'mon')
                    $.each(event, function (index, value) {
                        html += '<option value="' + value + '">' + value + '</option>'
                    });

                if (d[today.getDay()] == 'tue')
                    $.each(event, function (index, value) {
                        html += '<option value="' + value + '">' + value + '</option>'
                    });

                if (d[today.getDay()] == 'wed')
                    $.each(event, function (index, value) {
                        html += '<option value="' + value + '">' + value + '</option>'
                    });

                if (d[today.getDay()] == 'thu')
                    $.each(event, function (index, value) {
                        html += '<option value="' + value + '">' + value + '</option>'
                    });

                if (d[today.getDay()] == 'sat')
                    $.each(event, function (index, value) {
                        html += '<option value="' + value + '">' + value + '</option>'
                    });

                if (d[today.getDay()] == 'fri')
                    $.each(event, function (index, value) {
                        html += '<option value="' + value + '">' + value + '</option>'
                    });
                $('#slDay').append(html);
            }

        });
    });
</script>

<div class="form-group col-md-12 text">
    <label >Select Date<span style="color:red";> * </span></label>
    <input type="text" class="form-control" id="datepicker" name="date" min="<?php echo date('Y-m-d', strtotime("+2 days")); ?>" />
</div>
<div class="form-group col-md-12 text">
    <label>Select Mass<span style="color:red";> * </span></label>
    <select class="form-control" required="" id='slDay' name="day">
        <option value="">---SELECT---</option>
    </select>
</div>

【问题讨论】:

  • 您在使用此代码时遇到了什么问题?我认为您只需要设置“selected”属性即可使下拉列表中的选项被选中
  • 我只想在从日期选择器中选择 29-08-2020 到 08-09-2020 之间的日期时更改下拉值
  • 我的特定代码是基于从日期选择器中选择的日期..
  • 如果日期在29-08-2020 to 08-09-2020 event1 或 event 之间,您希望显示哪个事件?
  • $.each(event, function (index, value) { html += '' });

标签: javascript jquery jquery-ui-datepicker


【解决方案1】:

您可以简单地store 数组中29-08-2020 to 08-09-2020 之间的所有日期,并使用includes 方法检查所选日期是否在those 日期之间。

在此基础上,您将 append 下拉列表中的新选项。如果您的datesdates 不同,那么您可以在下拉列表中附加other value

现场演示:

$(function() {
  var date = new Date();
  var dayNo = date.getDay();
  var mindate = (5 - dayNo);
  var d = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
  var event = ['6.00 am : English', '7.00 am : Kannada', '8.00 am: Tamil'];
  var event1 = [' 7.00 am : Kannada', '9.00 am: English', '11.00 am: Tamil'];
  var event3 = [' 11.00 am : Kannada', '12.00 am: English', '13.00 am: Tamil'];
  var custDate = ['2020-08-29', '2020-08-30', '2020-08-31', '2020-09-01', '2020-09-02', '2020-09-03', '2020-09-04', '2020-09-05', '2020-09-06', '2020-09-07', '2020-09-08'];

  //Lest assume this is  event from database
  $("#datepicker").datepicker({
    changeMonth: true,
    dateFormat: 'yy-mm-dd',
    minDate: mindate,
    onSelect: function(dateText, inst) {
      var today = new Date(dateText);
      var a = (d[today.getDay()]);
      $('#slDay').val(d[today.getDay()]);
      var html = '';
      $('#slDay').html('');
      if (custDate.includes(dateText)) {
        $.each(event3, function(index, value) {
          html += '<option value="' + value + '">' + value + '</option>'
        });
      } else if (d[today.getDay()] == 'sun') {
        $.each(event1, function(index, value) {
          html += '<option value="' + value + '">' + value + '</option>'
        });
      } else {
        $.each(event, function(index, value) {
          html += '<option value="' + value + '">' + value + '</option>'
        });
      }
      $('#slDay').append(html);
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js" integrity="sha512-cViKBZswH231Ui53apFnPzem4pvG8mlCDrSyZskDE9OK2gyUd/L08e1AC0wjJodXYZ1wmXEuNimN1d3MWG7jaQ==" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.9.2/themes/base/jquery-ui.min.css" integrity="sha512-YqF4f2cbm2jH7sEEu/iDJFjSQ/qUSzoiQIK2OQ3OFTsQQE5dxoCTYz1wZrTMv8ES8NYqOB5ChZU8jQdMaEv/yg==" crossorigin="anonymous" />
<div class="form-group col-md-12 text">
  <label>Select Date<span style="color:red" ;> * </span></label>
  <input type="text" class="form-control" id="datepicker" name="date" min="" />
</div>
<div class="form-group col-md-12 text">
  <label>Select Mass<span style="color:red" ;> * </span></label>
  <select class="form-control" required="" id='slDay' name="day">
    <option value="">---SELECT---</option>
  </select>
</div>

【讨论】:

  • 当日期为 29-08-2020 我必须更改事件 var event3 = [' 11.00 am : Kannada', '12.00 am: English', '13.00 am: Tamil'];跨度>
  • 星期六、星期日日期是 event1 否则是 event2
  • 只是一个例子。事件是星期一到星期六,事件 1 是星期日,事件 3 是 2020 年 8 月 29 日到 2020 年 8 月 9 日之间的日子..
  • 即使是 9 月 29 日至 8 日之间的日期,工作日和周末也会有不同的活动
  • Event1 是星期天。周一至周六活动
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-19
  • 1970-01-01
  • 1970-01-01
  • 2021-05-03
  • 2018-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多