當使用Tab鍵導航時,Safari默認只訪問表單元素。在使用自定義表單元素(例如jQuery UI Selectmenu)時,瀏覽表單字段時這些元素不會被忽略。如何在不改變默認設置的情況下使用Tab鍵在導航中包含自定義表單元素?如何在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();
}
});
編輯:爲了防止後Shift + Tab再次被聚焦你可以做這樣的事情。
$('#myForm input').focusout(function() {
$('#myForm').data('lastIn', $(this).attr('name'));
});
0
所以這是我結束瞭解決方案:
select{
display: block !important;
left: -9999;
position: absolute !important;
}
我你機頂盒:-9999,頁面將滾動到當元素獲得焦點的頂部,所以我跳過的。我重用了selectmenu插件應用於的原始選擇元素。重要的語句用於覆蓋由插件應用的元素樣式。
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();
});
在這裏,我所有的輸入存儲在一個變量,發現我的選擇元素,並將焦點設置到前一個元素。
相關問題
- 1. 導航菜單:添加自定義標記元素
- 2. VBA廢料,如何獲取元素在標籤中導航?
- 3. 如何的struts-config中添加自定義元素forward標籤
- 4. Rails中的自定義表單元素
- 5. 使用自定義ComboBoxStyle將標籤居中在ComboBox元素中
- 6. 在SilverStripe中自定義導航菜單
- 7. 如何調整自定義單元格中的標籤約束?
- 8. Xamarin表單自定義導航轉換
- 9. 如何自定義django中的下拉列表表單元素?
- 10. 使用jQuery自定義表單元素
- 11. Liferay中的自定義導航菜單?
- 12. didSelectRowAtIndexPath爲自定義標籤單元格
- 13. 自定義單元格標籤
- 14. Wordpress導航錨定標籤的自定義類
- 15. 如何隱藏自定義django表單中的django標籤?
- 16. 如何隱藏我的自定義導航控制器中的標籤欄?
- 17. 如何自定義symfony2表單中的集合元素
- 18. ColdFusion的使用自定義標籤中自定義標籤
- 19. 如何關注safari中特定的非表單元素?
- 20. 如何在Orchard中創建自定義導航菜單CMS
- 21. 如何在WordPress中自定義導航菜單
- 22. 如何在WordPress中自定義導航菜單
- 23. 如何跳過TAB導航中的表單元素?
- 24. 使用左右對齊元素製作自定義導航欄
- 25. 表單標籤語義html5以外的表單元素?
- 26. 簡單的HTML/CSS標籤導航在Safari 9中不起作用。爲什麼?
- 27. 在自定義單元格中獲取標籤的值
- 28. 如何與自定義表單使用黃瓜標籤
- 29. DevExtreme Angular2自定義標籤表單
- 30. Symfony2:自定義表單集合中的表單標籤
我喜歡它:)但是,由於selectmenu之前的元素是select元素,它會將焦點反彈回selectmennu,所以它會打斷shift-tabbing。我正在研究解決方案。 – 2012-03-02 09:21:06
@Jørgen你現在可以檢查。我已經用解決方案編輯了這篇文章。 – blackpla9ue 2012-03-02 10:21:55
謝謝,我對這個解決方案並沒有很滿意,但是你讓我走了,所以我接受:) – 2012-03-02 12:26:34