iOS Safari 日期选择器默认值

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

每当我使用默认浏览器日期选择器(输入类型日期)时,在打开它时设置一个值。该值始终是最近一天。而且没有删除按钮。

我还有一个过滤器,它会在更改事件时触发,每当用户打开日期选择器时,都会触发过滤器。

我读了很多 stackoverflow 票证,但没有真正找到任何解决方案。

javascript html ios iphone
1个回答
0
投票

这似乎是 Safari 小部件的一个已知问题。

这是一个解决方法。请在有关过滤器的问题中添加更多信息,或者如果您需要该部分的帮助,请提出新问题

let dateInputHadFocus = false;

// Listen for focus event to detect when the date picker is opened
document.getElementById('yourDateInputId').addEventListener('focus', function() {
  dateInputHadFocus = true;
}, false);

// Listen for the change event to apply your filter logic
document.getElementById('yourDateInputId').addEventListener('change', function() {
  if (dateInputHadFocus) {
    // Apply your filter logic here so it is only applied if the date picker was actively opened by the user
    console.log('Filtering');
    // Reset the flag
    dateInputHadFocus = false;
  }
}, false);

document.getElementById('clearDate').addEventListener('click', function() {
  document.getElementById('yourDateInputId').value = '';
  // Optionally, trigger the filter logic here if necessary
});
<input type="date" id="yourDateInputId" value="2024-02-09" />
<button id="clearDate">Clear Date</button>

© www.soinside.com 2019 - 2024. All rights reserved.