:::info 西湖的水,我的泪 :::

我司一个公众号项目,突然有用户反馈注册时日期选择器被遮挡选择不了时间,反馈如下图1,无法左右滑动也无法切换年月。

397-ios-14.2.jpg397-ios-13.jpg

我的第一反应是,好家伙,iOS 的日期选择啥时候变成这样的了,我印象中还一直停留在图2。

因为当时直接使用的 <input type="date">, 所以很确定就是兼容问题,对比了多个微信版本、iOS版本,发现日期选择器的系统样式可能不只两种。 iOS 14.2下的微信H5日期选择器显示问题 - 图3

397-ios-13.jpg397-ios-14.jpg397-ios-14.2.jpg

上图依次为 iOS13、iOS14、iOS14.2 版本上微信 H5 调用date的选择器样式。
但只有 iOS14.2 上有选择问题。

因此我写了以下4种情况的选择器分别在 iOS14.2 上的微信 7.0.17、Safari、Chrome中进行测试:

  1. <div class="div">
  2. <span>1. 有label 无placeholder</span>
  3. <div>
  4. <label for="date">生日</label>
  5. <input ref='date' type="date" id="date" value="2020-11-11">
  6. </div>
  7. </div>
  8. <div class="div">
  9. <span>2. 无label 有placeholder</span>
  10. <div>
  11. <input ref='date' type="date" id="date" value="2020-11-11" placeholder="请输入你的生日">
  12. </div>
  13. </div>
  14. <div class="div">
  15. <span>3. 有label 有placeholder</span>
  16. <div>
  17. <label for="date">生日</label>
  18. <input ref='date' type="date" id="date" value="2020-11-11" placeholder="请输入你的生日">
  19. </div>
  20. </div>
  21. <div class="div">
  22. <span>4. 无label 无placeholder</span>
  23. <div>
  24. <input ref='date' type="date" id="date" value="2020-11-11">
  25. </div>
  26. </div>

测试视频如下:

397-ios-14.2-wecaht-7.0.17.mp4 (33.45MB)

结论

微信内置浏览器在iOS14.2的兼容有问题,所以如果使用<input type="date">而且添加了labelplaceholder属性,选择器就会无法正常切换。

I’m fine。iOS 14.2下的微信H5日期选择器显示问题 - 图8