2011-10-06 3 views
9

私は動的選択ドロップダウンメニューを持っています。たとえば、特定の月を選択すると、2番目の選択要素にその月の日数が入力されます。モバイルSafari「フォームアシスタント」で選択した要素でイベントが発生しないように変更

これは意図的に機能しますが、ユーザーがiPhoneを使用していて、モバイルサファリの「フォームアシスタント」に組み込まれた「次へ」ボタンを使用すると、changeイベント(jQueryを使用)更新されません。私はまた、モバイルのjQueryを使用していFYI

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

blur

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

}); 

を(ブラーはしかしiphoneに火をしなければ分からない)、または持っているようにあなたはまた、いくつかの追加イベントをバインドでき

+0

iPhoneデバッガ(Safariデバッグモード)の出力はありますか? –

+0

なし私はこれがモバイルサファリバグかもしれないと思っています。 – wdm

答えて

2

最高の回避策、私が見つけることができるこの記事に基づいていた...

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

は、(上記のリンクから)プラグインを使用して、私はすぐにオプションはモバイルSafariの「フォームアシスタント」に選ばれたようblurに選択メニューを強制しなければなりませんでした。

しかし、これらのメニューを無差別にテストすると、いくつかの前後の選択の後に特別なblurイベントが発生することに気付きました。余分なfocusはそれを修正するようだ。

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

別のchange機能では、第2の選択メニューを動的に更新しています。

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

※Mobile Safari/iOS 5.0.1でしかテストされていません。

5

あなたは試してみました:

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

提案していただきありがとうございます。私はそれが問題かもしれないと思ったように、私はいくつかの異なるイベントを試みました。火をつけることができなかった。 – wdm

+0

@wdm私の答えを – Andy

+0

更新しました。月の選択はDOM内で静的なので、 'live()'関数は私が必要と考えるものではありません。私はそれを何とかして幸運を与えた。 – wdm

関連する問題