javascript - 选择特定日期时在下拉列表中显示不同值的日期选择器

标签 javascript jquery ajax datepicker

我有一个日期选择器和一个具有不同交货时间的下拉菜单。基本上,当用户点击从周一到周五的任何一天时,下拉计时菜单有 4 个值。但是当用户点击 Sat 时,下拉计时菜单将有 3 个值。

以下是我的代码。 (请注意,我已经进行了更改,例如禁用星期日和过去的日期)

<script>
$( function() {
    $("#datepicker").datepicker({
        minDate: new Date(),
        beforeShowDay: function(date) {
            var day = date.getDay();
            return [(day != 0), ''];
        }
    });
    } );
</script>

<form name="checkout">
<input type="text" name="datepicker" id="datepicker" placeholder="Date of Delivery" onBlur="getWeekday();">

<div id="weekday">
    <select name="time">
        <option value="slot1">9am - 11am</option>
        <option value="slot2">11am - 2pm</option>
        <option value="slot3">2pm - 5pm</option>
        <option value="slot4">7pm - 10pm</option>
    </select>
</div>

<script>
function getWeekday() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
      document.getElementById("weekday").innerHTML = xhttp.responseText;

    }
  };
  xhttp.open("GET", "_weekday.php", true);
  xhttp.send();
}
</script>


</form>

如您所见,在我的代码中,我有 3 个东西,即日期选择器、表单和 ajax 代码。

这正是 _weekday.php 中的内容

<select name="time">
    <option value="slot1">9am - 11am</option>
    <option value="slot2">11am - 2pm</option>
    <option value="slot3">2pm - 5pm</option>
</select>

所以基本上,现在它所做的是,默认情况下,下拉菜单中有 4 个时间段,但是当用户单击日期选择器时,它将有 3 个时间段。

所以我的问题或者我需要的帮助是,我如何以这种方式实现它,只有在日期选择器上单击任何星期六时,ajax 才会激活并显示 3 个时隙而不是默认的 4 个时隙.但是,如果是其他任何一天,那么它仍然是4个时隙。

谢谢。

最佳答案

<script>
function getWeekday() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
      var pickedDate = new Date($('#datepicker').val());
   if(pickedDate.getDay() == 6){
//Write code for 3 option in select
   }
    else{
//Write code for 4 option in select
}

    }
  };
  xhttp.open("GET", "_weekday.php", true);
  xhttp.send();
}
</script>

你只需要使用 new Date().getDay() 来检查 datetimepicker 中的哪一天,如果这一天是 6,也就是星期六,那么只附加 3 个选项,否则对于所有工作日,所有其他 4 个选项

或者 最好的方法是将请求中的星期几传递给你的 php 页面,你可以在 php 中编写相应的日逻辑,也可以在查询参数中传递日期并检查 php 中的每个条件,这对安全观点有好处还有

关于javascript - 选择特定日期时在下拉列表中显示不同值的日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39221346/

相关文章:

java - 使用 JSR 303 验证和 AJAX 动态生成的网页

javascript - JS 函数在页面加载之前预加载图像

javascript - Angular 2 应用程序无法正常工作 - 空白页面

javascript - 从 Javascript (JQuery) 调用 C# 函数 (WebMethod)

javascript - AngularJS:AngularJS 渲染模板后如何运行附加代码?

javascript - 如何将事件对象传递给命名函数

java - JQuery Ajax POST 方法不起作用? $.post

javascript - 如何使用API​​​​向创建的div中的数据添加超链接

javascript - withData 和 before 在 webdriverio 中同时被调用。如何先调用before再调用withData?

javascript - 查找对象的值