iPhone Safari下拉菜单中的“下一步”不会在更改事件时触发

'next' in the dropdown on iPhone Safari does not trigger on change event

本文关键字:下一步 事件 下拉菜单 Safari iPhone      更新时间:2023-09-26

我正在尝试为移动野生动物园做一个直接的级联下拉菜单。我在 safari 本身中 100% 工作,它显示了正常的样式下拉列表。但是移动野生动物园下拉菜单有一个"下一步"按钮。

点击下一个按钮会将您带到级联中的下一个下拉列表,并触发 onchange() - 因此下一个下拉列表为空。

用户被迫按"完成"以触发更改,然后单击下一个下拉列表。

有谁知道解决这个问题的方法。或者移动野生动物园的"下一个"触发了什么 DOM 事件?

从头开始禁用第二个下拉列表是我迄今为止发现的唯一解决方法! 它将禁用iPhone上的"下一步"按钮

将禁用的

attr(禁用="禁用")添加到您选择并使用javascript或jQuery来启用或禁用。

这是jQuery代码

$(".DD1").focus(function() {
    $('.DD2').attr('disabled', 'disabled');
}).blur(function() {
    $('.DD2').removeAttr('disabled');
});

这是一个正在这样做的活生生的例子

使用 jQuery: http://www.imotors.com/mobile

这是一个iOS原生叠加层,所以当该叠加层出现时,你会得到一个模糊事件。 尝试使用 blur 事件,看看它是如何工作的。

我已经尝试了许多直接的解决方案来解决这个问题,但没有成功。 第二个下拉是在 Safari Mobile 的"表单助手"覆盖层出现微调器(在文档中称为"选择器"- http://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/MobileHIG/UIElementGuidelines/UIElementGuidelines.html)出现填充的。 因此,选取器填充了旧值。

在另一种情况下,如果第二个级联下拉处于非活动状态,则窗体助手的"下一步"按钮将直接跳过它。 但是,在这种情况下,一旦到达以下表单元素,第二个下拉列表确实会正确更新自身,因此在此时点击"上一个"会在选取器中给出正确的列表。

我的"答案"是,苹果建议不应该使用基于JavaScript的级联下拉,而是要实现另一个UX,尽管除了标准的jQuery Mobile类型分页菜单之外,我没有发现任何描述这一点的东西。