我有一个使用日历表来帮助用户选择日期的表单。仅当用户单击使日历显示在日期的输入字段下的按钮时,才会显示日历。
日历本身与表单位于相同的DOM级别,并使用display:none初始化;像这样:
<html>
<body>
<form class="my-form">
...
</form>
<div class="my-calendar" style="display:none">
<table>
<tr>
<td><a>firstday</a><td>
...
</tr>
</table>
</div>
</body>
</html>
当用户点击表单中的日历按钮时,将显示日历,然后用户可以通过单击选择日期。这在所有浏览器上都按预期工作,但是当我在IPad上测试它时,它表现得非常意外。点击一天时,它不会选择日期,而是选择整个表格,该表格对JavaScript没有任何操作,然后点击当天在地理位置上的元素。即使由于某种原因点击触发事件捕获而不是事件冒泡不应该点击转到“my-calendar”层次结构上方的元素,而不是表单内的元素。任何人都知道发生了什么我不能想出这个。
更新:我设法通过不关闭动画来摆脱部分行为($ .fx.off)现在我的问题是,当点击下个月按钮时,月份会发生变化但焦点会丢失并且日期选择器消失。在点击“下个月”按钮时由datepicker执行的最后一个操作是它将焦点放在具有新月份的表格上。就像我说的,除了移动Safari之外,所有浏览器都能正常工作。我不能使用任何datepicker来解决所使用的框架遗留问题。关于问题可能是什么的任何想法?