2011-05-18 81 views
0

我正試圖在用戶點擊下拉框時專注於div(fancybox模式)。我曾嘗試在div上設置tabindex。但重點不錯,但是在模態窗口的底部顯示一個滾動條。專注於div字段

在閱讀過鏈接,輸入元素,textareas等可以設置爲關注,我已經嘗試在模態div中集中隱藏的輸入而無濟於事。

更多詳細信息:這是一個用戶註冊頁面,所有國家和城市加載隱藏在頁面中。當用戶點擊城市下拉框時,fancybox模式彈出隱藏國家和城市的內容。從那裏,用戶可以通過國家,州和城市點擊。最後,選定的城市在前一個下拉列表中被填充,fancybox關閉。

問題是,用戶點擊下拉菜單並彈出fancybox後焦點停留在那裏。

代碼:

$("select[name=current_home]").click(function() { 
    $.fancybox({ 
     'transitionIn' : 'none', 
     'transitionOut' : 'none', 
     'overlayShow' : false, 
     'titleShow'  : false, 
     'width'   : 300, 
     'content'  : '<div id="countries">' + $('#countries-box').html() + '</div>', 
     'onComplete' : function() { $('#countries').focus(); }, 

    }); 
    //  $('#countries input[name=focusme]').focus(); 
}); 

countries-box保持隱藏的國家和城市。我沒有使用fancybox提供的onComplete,因爲您可以看到上面的註釋行。我嘗試了兩個並沒有區別。

任何解決方案?

+1

解釋你能澄清這個地方的div和下拉框是,任何相關的代碼將真正幫助 – 2011-05-18 09:21:35

回答

1

好吧,你正試圖專注於<div id="countries>,並且div無法聚焦,它們都不會將焦點轉移到可聚焦元素內部。

你需要關注的inputselecttextareabutton您的DIV上它onComplete事件激發,和良好的方法是把重點放在第一個,像這裏面:

$.fancybox({ 
    ... 
    'onComplete' : function(){ $('#countries :input:visible:enabled:first').focus()} 
    ... 
}); 

:input檢查inputselecttextareabutton元素,如jQuery API

+1

更新了更多的信息。謝謝。 – 2011-05-18 10:24:33

+0

爲你的代碼做這個工作嗎? – 2011-05-18 11:25:22

+0

沒有。你在第二段中被誤解了。輸入字段是用於解決方法,實際上是一個我正試圖關注的隱藏字段。它位於fancybox。但你提到焦點不適用於隱藏領域。 – 2011-05-18 15:33:01