使用Mobile Safari“表单助手”更改未在选定元素上触发的事件

时间:2011-10-06 22:01:26

标签: jquery iphone ios jquery-mobile mobile-safari

我有动态选择下拉菜单。例如,如果您选择特定月份,则第二个选择元素将填充该月份的天数。

这可以按预期工作,但是当用户在iPhone上并使用Mobile Safari的“表单助手”中内置的“下一步”按钮时,change事件(使用jQuery)似乎不会触发第二个选择不会更新。

$('.month').change(function() {
    // update "days" select element
});

仅供参考我也在使用jQuery mobile

2 个答案:

答案 0 :(得分:5)

您还可以绑定一些其他事件,例如blur(不知道模糊是否会触发iphone)

$('.month').bind('change blur',function(){

});

或者你试过了吗?

$('.month').live('change',function(){
});

答案 1 :(得分:2)

我能找到的最佳解决方案是基于这篇文章......

Strange behavior of select/dropdown's onchange() JS event when using 'Next' on Mobile Safari Dropdown list item select box

使用插件(来自上面的链接),我必须在使用Mobile Safari的“表单助手”选择一个选项后立即将选择菜单强制为blur

但是我注意到,当蛮力测试这些菜单时,额外的blur事件会在几次来回选择后触发。额外的focus似乎解决了这个问题。

$('select').quickChange(function () {
    $(this).blur();
    $('select').focus(); // somehow prevents an extra blur from firing on focus
});

使用单独的change功能,我正在动态更新第二个选择菜单。

$("#select-choice-month").change(function () {
    // update second select dynamically
});

*目前仅在Mobile Safari / iOS 5.0.1上测试过。