2010-12-20 82 views
0

我有一個擁有多個表單的頁面。我正在使用Mootools滑動選項卡,以便菜單上的每個按鈕都可以滑動到下一個窗體。有三種技術上在同一個HTML頁面上的表單。在http://creativepony.com/archive/demos/sliding-tabs/用javascript設置tab鍵

我的問題是,當用戶按Tab鍵和標籤到最後一個字段我想要Tab鍵順序,因此它回到第一個字段。這樣用戶不會意外地選中下一個表單。用戶最終會圍繞相同的表單域進行循環。對於用戶到達下一個表格,他們使用菜單,所以我不希望他們能夠選項卡到下一個表格。

我知道用'tabindex'設置tab鍵順序,但是這並不能幫助我讓用戶返回到表單的第一個字段。

任何想法如何實現這與JavaScript?

回答

1

您可以通過事件偵聽器做到這一點:

$$(".foo").addEvent("click", function(e) { 
    if (e.keyCode == 9) new Event(e).stop(); 
    $("#myfield").focus(); 
}); 
+0

這是一個jQuery解決方案嗎?如果是這樣,它看起來不正確。 – 2010-12-20 15:52:24

+0

不,它使用MooTools。至少我在2年前編寫MooTools時能記得的東西。 – doque 2010-12-20 16:00:32

+1

啊,我忽略了OP使用Mootools的說法。我不太瞭解這個框架,但是真的有必要發佈一個「新事件」來阻止當前的傳播?你不應該使用'keydown'事件,而不是'click'? – 2010-12-20 16:19:24

2

我會通過在不可見disabled形式的領域做到這一點,所以瀏覽器知道要跳過他們,無論導航機制(認爲輔助功能)。

+0

事實上,這看起來像我最喜歡的解決方案:如果用戶不能'選擇'他們的方式到第二種形式,他們總是可以指向並單擊那裏。 – 2010-12-20 19:17:30