2014-04-22 105 views
2

我有問題,在HTML5實現一個模態對話框:https://github.com/Semantic-Org/Semantic-UI/issues/733如何防止輸入字段獲得鍵盤焦點?

我想對所有背景輸入字段編程方式禁用焦點,而模態對話框可見。 有沒有辦法以編程方式防止HTML輸入字段獲得鍵盤焦點?

+0

將它們設置爲'readonly',授予它對checkbox/radio等不起作用.' disabled'將適用於所有人,但如果元素在表單中,則不會張貼值 – CodingIntrigue

+0

使用jQuery,您可以使用'blur()'函數: http://www.w3schools.com/jquery/event_blur.asp eg '$('input')。blur()' –

+0

您是否在表單中維護所有輸入字段? – chandu

回答

0

,如果你保持一個表單內的所有輸入字段嘗試這種開放模式對話框

var form = document.getElementById("your_form_id"); 
var elements = form.elements; 
for (var i = 0, len = elements.length; i < len; ++i) { 
    elements[i].readOnly = true; 
} 
0

我已經找到了解決辦法:

function startFocusJail (focusRootElement) { 
    $(document).off("focusin.focusJail"); 
    $(document).on("focusin.focusJail", function(event) { 
     if (event.target !== focusRootElement && !$.contains(focusRootElement, event.target)) { 
     focusRootElement.focus(); 
     } 
    }); 
} 

function stopFocusJail() { 
    $(document).off("focusin.focusJail"); 
} 

如果DIV被作爲focusRootElement參數傳遞,它必須有tabindex="-1"

相關問題