2011-09-14 6 views
0

いくつかのオプションを持つselectタグがあります。いくつかのオプションは隠されていてもいなくても、 キーボードから任意のキーを押すと、フォーカスも隠しオプションになります。Jqueryのオプション、隠しオプションのキーボードフォーカス

例:私は4つのオプションを持っている選択を持っている上に隠れて、私は第二保持しているので、今は第一第三及び第四は、目に見える

<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> 

になります。

キーボードから「b」を押すと、非表示のオプションに移動します。つまり、キーボードから2回「b」を押して4番目のオプションに移動する必要があります。

誰もこの問題を解決する方法を教えてもらえますか?

キーボードから任意のキーを押すと、非表示のオプションのみを考慮してフォーカスを合わせる必要があります。 HTMLで事前

答えて

0

おかげで、私はあなたが知っている確信しているとして、あなたは、クラスとIDを持っているあなたが好きなようにあなたがページ上のように多くのクラスを持つことができますが、あなたは、単一の上に複数のIDを持つことはできませんこれはあなたの問題がある場所です。 HTMLページは複数のIDを持つことはできません。

ID年代は、ページ上の単一の要素を識別するために使用されているので、この理由は、(それが表示されていない場合であっても、それはそれはありませんという意味ではありません。

あなたは彼らので、あなたのオプションのIDの名前を変更する必要があります。すべて異なっている。すべてのタグが固有のIDを持っている場合でも

0

、隠されたオプションは、キーボードで選択します。それを避けるために、要素が同様に無効にする必要があります。

<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')

のために、私は質問は少し古いですけど、私は似たような状況だったし、この質問が飛び出るまま...

編集: は、オプションタグを非表示にするだけの仕事を動作するようですファイアフォックスで互換性を高めるために、オプションを隠す代わりにオプションを削除する必要があります。

関連する問題