javascript焦点事件第一次不聚焦,第二次聚焦时

问题描述 投票:0回答:1

我面临 javascript 事件焦点和模糊问题 我正在尝试在输入字段文本的 if else 条件下运行脚本,该文本具有来自 jqeuryUi 的日期下拉列表 我正在尝试应用一个条件,其中如果用户选择今天的日期,然后我必须运行脚本,否则不要运行脚本 https://camelia.ae/checkout/ 这是网站的链接尝试在购物车中添加一些东西

<script>
    document.addEventListener("DOMContentLoaded", function() {
      var deliveryDateInput = document.getElementById("delivery_date");

      deliveryDateInput.addEventListener("focus", function() {
        // Remove the previous blur event listener, if any
        this.removeEventListener("blur", handleDateBlur);
        
        // Attach the blur event listener
        this.addEventListener("blur", handleDateBlur);
      });

      function handleDateBlur() {
        var selectedDateParts = this.value.split("/");
        var selectedDate = new Date(selectedDateParts[2], selectedDateParts[1] - 1, selectedDateParts[0]);
        var today = new Date();
        today.setHours(0, 0, 0, 0);

        if (selectedDate.getTime() === today.getTime()) {
          alert("Hello! You've selected today's date.");
        }
      }
    });
</script>

我已经编写了这段代码,其中我试图在今天的日期显示警报,我面临的问题是这段代码正在工作,但是在我第二次选择第一次时它什么都不显示,但是当我第二次单击它时显示警报 谁能告诉我这个问题的解决办法

<script>
    document.addEventListener("DOMContentLoaded", function() {
      var deliveryDateInput = document.getElementById("delivery_date");

      deliveryDateInput.addEventListener("focus", function() {
        // Remove the previous blur event listener, if any
        this.removeEventListener("blur", handleDateBlur);
        
        // Attach the blur event listener
        this.addEventListener("blur", handleDateBlur);
      });

      function handleDateBlur() {
        var selectedDateParts = this.value.split("/");
        var selectedDate = new Date(selectedDateParts[2], selectedDateParts[1] - 1, selectedDateParts[0]);
        var today = new Date();
        today.setHours(0, 0, 0, 0);

        if (selectedDate.getTime() === today.getTime()) {
          alert("Hello! You've selected today's date.");
        }
      }
    });
</script>

我已经编写了这段代码,其中我试图在今天的日期显示警报,我面临的问题是这段代码正在工作,但是在我第二次选择第一次时它什么都不显示,但是当我第二次单击它时显示警报 谁能告诉我这个问题的解决办法

javascript jquery wordpress jquery-ui
1个回答
0
投票
<script>
   let date = document.querySelector('#delivery_date');

   date.addEventListener('change', onDateChange)

   function getFormattedDate() {
        const today = new Date();
        const year = today.getFullYear();
        const month = (today.getMonth() + 1).toString().padStart(2, '0'); // Months are zero-based
        const day = today.getDate().toString().padStart(2, '0');

        return `${year}-${month}-${day}`;
    }
    const formatedDate  = getFormattedDate()

    function onDateChange(e) {
        let selectedDate = e.target.value;
        if(selectedDate === formatedDate) {
            alert("Hello! You've selected today's date.");
        }
   }
</script>
© www.soinside.com 2019 - 2024. All rights reserved.