我有一個jQuery UI對話框,它承載了一些按鈕。jQuery UI對話框竊取重點
我想在這些按鈕上有鍵盤控件(tab-navigation),所以在對話框的打開事件處理程序中,我將第一個按鈕設置爲焦點。
我可以清楚地看到這些作品,並使用document.activeElement對其進行驗證,但重點被盜,其他重點也被關注。
到了這個時候,我不知道我應該怎麼看重什麼,因爲我沒有任何進一步的鉤子。
有沒有其他人注意到類似的問題?
如果你有興趣,我的代碼是這樣的(修正案增加了福克斯如下所述)
在doc.ready - 注我還添加了jQuery的按鈕它 - 但他們不」 t似乎對所有的鍵盤事件做出了響應 - 但這是一個單獨的問題。
$("#dialogSearchType").dialog
(
{
bgiframe: true,
height: 180,
width: 350,
modal: true,
autoOpen: false,
show: 'drop',
hide: 'fold',
buttons: { "Street": function() { HandleSearchStreetClick(); $(this).dialog("close"); },
"Property": function() { HandleSearchPropertyClick(); $(this).dialog("close"); }
},
focus: function(event, ui) { $("#btnSearchTypeProperty").focus(); }
}
);
<div id="dialogSearchType" class="searchDialog" style="width: 280px; display: none" title="Search For..." onkeyup="HandleSearchTypeDialogKeyUp(event)">
<span>What would you like to search for?</span>
<br />
<input type="button" tabindex="1" id="btnSearchTypeStreet" class="button" value="Street" onclick="HandleDialogSearchStreetClick()" />
<input type="button" tabindex="2" id="btnSearchTypeProperty" class="button" value="Property" />
</div>
正如你所看到的,我嘗試過在事件中添加事件處理程序,但沒有任何反應!
謝謝,遺憾的是這個沒有工作,一個有趣的解決方案 - 我已經編輯我的Q和添加的代碼段。另一個BIG Q我(我想我將作爲一個單獨的問題打開)是內置按鈕(使用按鈕選項)根本不需要鍵盤輸入。我可以看到jQuery UI在顯示時將焦點設置爲其中的一個,但唯一可用的鍵盤事件是關閉對話框的ESC! :( – Duncan 2009-05-22 11:13:17