使用Mobile Safari“表单助手”更改未选中元素的事件

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

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

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

仅供参考我也使用jQuery手机

你也可以绑定一些额外的事件,如blur (不知道模糊是否在iPhone上触发)

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

或者你尝试过:

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

我能find的最好的解决办法是基于这个职位…

Mobile Safari下拉列表项select框中使用“下一个”时,select/下拉的onchange()JS事件的奇怪行为

使用插件(从上面的链接),我必须强制select菜单blur ,只要select一个选项与移动Safari的“表单助理”。

然而,我注意到,当蛮力testing这些菜单时,一些额外的blur事件会在几次来回select之后触发。 额外的focus似乎解决了这个问题。

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

使用单独的changefunction,我正在dynamic更新第二个select菜单。

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

*目前为止只在Mobile Safari / iOS 5.0.1上进行testing。