2011-09-14 67 views
0

我有一些選項的選擇標籤,其中一些隱藏和一些或沒有, 當我按下鍵盤上的任何鍵時,焦點也轉到隱藏的選項。JQuery的選項,鍵盤集中在隱藏的選項

例子:

<select id='myselect'> 
    <options id='a'>a</options> 
    <options id='b' style ='display:none'>b</options> 
    <options id='c'>c</options> 
    <options id='b'>b</options> 
    </select> 

上面我有一個選擇,其有4個選項,現在只有1第3和第四是可見的,因爲我一直保持第二的隱藏。

現在當我從鍵盤按'b'時,它會進入隱藏選項,即我必須按鍵2次'b'才能到達第4個選項。

誰能告訴我怎麼能解決這個問題?

當我按下鍵盤上的任何鍵時,焦點應該只考慮非隱藏選項。

在此先感謝

回答

0

隨着HTML你有類和ID的,因爲我敢肯定,你知道,你可以有很多類的網頁上,只要你喜歡,但你不能有一個以上的ID頁面,這是你的問題所在。一個HTML頁面不能有多個ID。

這樣做的原因是因爲ID是用來在頁面上識別單個元素(即使是不可見的,這並不意味着它不存在。

您將需要重命名你的選擇的ID,使他們都不同。

0

即使所有的標籤都有唯一的ID,隱藏的選項獲得通過鍵盤選擇。爲了避免這種情況,該元素必須被禁止。

<select id='myselect'> 
    <option id='a'>a</option> 
    <option id='b' disabled style ='display:none'>b</option> 
    <option id='c'>c</option> 
    <option id='b2'>b</option> 
</select> 

jQuery中1.6+此可以通過使用來實現,較低版本.attr('disabled','disabled')

我知道這個問題是有點老了,但我也有類似的情況,這個問題不停地彈出...

編輯: 隱藏選項標籤似乎只工作工作在Firefox中。爲了更好的兼容性,應該刪除選項而不是隱藏它們。