2012-01-09 77 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