2012-01-09 111 views
2

我們在文檔中有很多input s。
我們想要打開一個對話框,生成文本並將其放入當前焦點輸入。防止元素失去焦點

問題是,當我點擊一個按鈕或其他任何東西來打開輸入失去焦點的對話框。我無法確定哪個輸入必須獲取生成的文本。

$("#button").click(function(){ 
    // something should goes here to prevent stealing inputs focus 
}); 

有沒有什麼解決方案來防止偷焦點由特殊的按鈕?

+1

節省焦點,當你點擊按鈕,加載在對話框的回調或在對話框 – ggzone 2012-01-09 11:16:51

+0

的關閉按鈕似乎好主意,我應該測試它 – Omid 2012-01-09 11:18:05

+0

不起作用!在點擊按鈕之前輸入模糊會被觸發。 – Omid 2012-01-09 11:31:02

回答

1

你不能使用表格button而只是使用說一個<span>使其行爲像一個按鈕?

UPDATE:

您可以使用類似

$('span').hover(function(){ 
    focused_element = $("*:focus").get(0); 
}); 
$('span').click(function(){ 
    focused_element.focus(); 
}); 

退房my fiddle

+0

問題依然存在! – Omid 2012-01-09 11:26:02

+0

真的嗎?嗯,也許你可能需要做@ggzone,在評論中建議。 – Alex 2012-01-09 11:27:38

+0

與失去的焦點沒有關係? – mrzmyr 2012-01-09 11:28:18

0

您的領域是否有唯一的ID?如果是,則在單擊對話框的保存/關閉按鈕時,使用該ID將焦點設置回該字段。

不要擔心一旦完成重置,重點就會被盜。

+0

沒有親愛的傑森,沒有獨特的身份證,不能是 – Omid 2012-01-09 11:21:34

0

我的解決辦法是處理每一個重點,並將其保存在focusEle

$(function() { 

    var focusEle; 

    $('*').focus(function() { 
     focusEle = this; 
    }); 

    $('button').click(function (e) { 
     console.log(focusEle); 
     var c = confirm('Love the cat :3?'); 
     $(focusEle).focus(); 
    }); 
}); 

HTML爲:

<input type="text"> 
<button>Press me!</button> 

示例工作:http://jsfiddle.net/76uv7/

根據@ggzone想法

+0

這似乎不起作用,因爲你的'*'選擇器意味着當你點擊成爲'focusEle'的按鈕。 – 2012-01-09 11:38:06

+0

@RoryMcCrossan我甚至猜到了,但檢查它的工作示例 – mrzmyr 2012-01-09 11:40:39

+0

我已經檢查了小提琴,對於我來說,在FF9中,單擊按鈕後焦點不會返回到文本輸入。 – 2012-01-09 11:46:05