jQuery、jqTouch、phonegapを使用してアプリをコーディングしていて、ユーザーがソフトキーボードの[移動]ボタンを使用してフォームを送信すると発生する永続的な問題に遭遇しました。
を使用してカーソルを適切なフォーム入力要素に移動するのは簡単ですが$('#input_element_id').focus()
、オレンジ色のアウトラインのハイライトは常にフォームの最後の入力要素に戻ります。(フォーム送信ボタンを使用してフォームを送信した場合、ハイライトは表示されません。)
オレンジ色のハイライトを完全に無効にするか、カーソルと同じ入力要素に移動する方法を見つける必要があります。
これまでのところ、CSSに以下を追加してみました。
.class_id:focus {
outline: none;
}
これはChromeでは機能しますが、エミュレータや私の電話では機能しません。私もtheme.css
読むためにjqTouch を編集してみました:
ul li input[type="text"] {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); and
-webkit-focus-ring-color: rgba(0, 0, 0, 0);
}
影響なし。また、AndroidManifest.xml
ファイルに次の追加をそれぞれ試しました。
android:imeOptions="actionNone"
android:imeOptions="actionSend|flagNoEnterAction"
android:imeOptions="actionGo|flagNoEnterAction"
どれも効果がありません。
更新:これでさらにトラブルシューティングを行い、現在までに次のことがわかりました。
outlineプロパティはChromeでのみ機能し、Androidブラウザーでは機能しません。
この
-webkit-tap-highlight-color
プロパティは実際にはAndroidブラウザで機能しますが、Chromeでは機能しません。フォーカス時とタップ時のハイライトを無効にします。-webkit-focus-ring-color
プロパティは、どちらかのブラウザ上で動作するようには思えません。