[safari]select内のoptionに動的に設定したselected属性が表示に反映されない

検索ボタンを押すと、結果を非同期で表示するような一般的な絞り込み検索フォームで、

検索ボタンを押してもselectされた条件をselectedにされたままにする実装をしました。

しかし・・・Chromeでは期待通りに動いているけど、safariだとhtml上は期待するoption要素がきちんとselectedになっているにもかかわらず、

ブラウザの表示上は反映されないという事象に遭遇。

色々試しているうちに、タブ移動でfocusが当たると表示に反映されることに気付いたため、

コード上で動的にselect要素をfocusしようとしても上手くいかない。。。

最終的にはイベントでfocusを当ててあげると上手くいきました。

・一旦全てのoptionのselectedを外す

・期待のoption要素にselectedをつける

・イベント登録(onclickまたはtouchstartで)


document.eventForm.event_item.addEventListener("touchstart",document.eventForm.event_item.focus());

参考にさせていただいた記事はこちら。

iOSのMobile Safari上でのfocus()が妙な件を調べてみた - mixi engineer blog

こんにちは。ミクシィUX統括部にて、mixi Touchの開発を担当しております戸高です。 JavaScriptでの開発を行う事が多いのですが、iOSのブラウザ(Mobile Safari)のfocus…

iPad Safariのselectがjavascript経由でリフレッシュされない場合 #JavaScript - Qiita

ChromeとFirefoxでiPad向けの業務WEBアプリを作成しています。基本的に3ブラウザとも動きが同じで通常は問題ないのですが、jsonで取ってきた値をselectの選択値に反映させ…

safari特有の挙動っていうかバグ??嫌いだ〜〜〜〜〜〜〜

Follow me!

コメントを残す

メールアドレスが公開されることはありません。