Safariでは、ナビゲーションにタブキーを使用する場合にのみ、フォーム要素にアクセスするようにデフォルト設定されています。 jQuery UI Selectmenuのようなカスタムフォーム要素を使用する場合、これらの要素はフォームフィールドをナビゲートする際に認識されます。デフォルトの設定を変更せずにタブキーを使用してナビゲーションにカスタムフォーム要素を含めるにはどうすればよいですか?Safariでカスタムフォーム要素のタブナビゲーションを有効にするには
1
A
答えて
1
は右jQueryのSelectmenu前input
要素を持っており、それがフォーカスを取得したら、それはjQueryのSelectmenuにフォーカスを設定しますので、それにイベントハンドラを追加します。そして、あなたは追加入力ボックスを非表示にするこのCSSを使用します。position: absolute; top: -9999px; left: -9999px;
$('input.hiddenInput').focus(function(){
var cameFrom = $('#myForm').data('lastIn');
//check whether it came from the jQuery select menu
if(cameFrom != 'jquery-ui-element'){
$('jquery-ui-element').focus();
} else {
//focus previous sibling
var inp = $('input');
var index = inp.index(this);
var prev = inp[index-1];
prev.focus();
}
});
編集:あなたはこのような何かを行うことができシフト+タブ後に再び焦点を当てされるのを防ぐために。
$('#myForm input').focusout(function() {
$('#myForm').data('lastIn', $(this).attr('name'));
});
0
だからこれは私がなってしまったソリューションです:
select{
display: block !important;
left: -9999;
position: absolute !important;
}
私はあなたがトップセット:-9999を、要素がフォーカスを取得したときにページが一番上にスクロールしますので、私はそれをスキップ。 selectmenuプラグインが適用されている元のselect要素を再利用します。重要なステートメントは、プラグインによって適用されるエレメントスタイルをオーバーライドするために使用されます。
selectmenuプラグインは自動的にフォーカスをa要素に設定するため、選択項目がフォーカスされているときにカスタムドロップダウンにフォーカスを置くためにJavaScriptは必要ありません。ただし、これにより、カスタム要素からカスタム要素にフォーカスを戻す元の要素にフォーカスが変更されるため、後方にタブを移動することはできません(シフトあり)。
私はこのように、この問題を解決:ここ
$('.ui-selectmenu').on('keydown', function(e){
if(e.shiftKey && e.keyKode === 9){
var all = $(':input'),
el = $(this).parent().prev('select'),
i = all.index(el);
all.eq(i).focus();
});
私は、変数内のすべての入力を保存し、私のselect要素を見つけて、前の要素にフォーカスを設定します。
関連する問題
- 1. Safari/Firefoxでクロスドメインを有効にする
- 2. JS/jQueryでDOM要素のイベントを有効/無効にする
- 3. 要素ルールを有効または無効にする
- 4. 動的要素リストのフォーム要素を有効にします
- 5. primefaces要素のjavadocを有効にする方法は?
- 6. クリックしたときに要素のホバースタイルを有効にする
- 7. カスタムフォームのOutlookウィンドウを無効にする
- 8. Javascriptで要素を無効にしてから有効にする方法
- 9. const配列内の要素を有効または無効にする
- 10. CSS3 :: outside擬似要素のサポートを有効にする
- 11. Safari 4でトップタブを有効にする方法
- 12. zendフレームワークでカスタムフォーム要素fckeditorを追加する方法
- 13. JavaScriptのimg要素のカスタムクリックイベントを無効/有効にする方法
- 14. Safari 6でJavaScriptのソースマップを有効にすることはできますか?
- 15. スタイル要素にIDを付けることは有効ですか?
- 16. 要素を交換するのに有効なHaskellのデータ構造ですか?
- 17. ソフトウェアトークンはマルチファクタセキュリティの第2の有効な要素ですか?
- 18. jQueryの要素へのバインディングイベントは何度も有効ですか?
- 19. 有効なHTMLとTD要素の数
- 20. モバイルSafariでaria-hiddenの変更をすぐに有効にする
- 21. nodeIndexはIEの有効なDOM要素プロパティですか?
- 22. "P0Y0M0DT0H0M0.0S"はWSRMの有効期限切れ要素に対して有効な値ですか?
- 23. iPad SafariのreadOnly html要素でユーザー選択を有効にするにはどうすればよいですか?
- 24. XHTML自己終了要素はHTML5でも有効ですか?
- 25. DateオブジェクトはChromeでは有効ですがSafari、Firefox、IEでは無効です
- 26. ウェブページの要素を無効にする
- 27. 要素が無効/有効になったときに検証を有効または無効にする方法
- 28. contentEditableを持つ要素で 'draggable'を有効にするにはどうすればよいですか?
- 29. 要素のhrefとonclickを無効にする(そして再び有効にする)
- 30. jqueryフォーム要素を無効にする
私はそれが好きです:)しかし、selectmenuの前の要素はselect要素であり、selectmennuにフォーカスを戻してしまうため、シフトタブが解除されます。私は今、解決策に取り組んでいます。 –
@Jørgen今すぐ確認できますか?私は解決策を使って投稿を編集しました。 – blackpla9ue
ありがとう、私はこのソリューションのためにかなり行っていないが、途中で私を得たので、私は受け入れている:) –