我们在文档中有很多input
个
我们想要打开一个生成文本的对话框,并将其放在当前关注的输入中。
问题在于,当我单击按钮或其他任何内容以打开输入失去焦点的对话框时。我无法确定哪个输入必须获取生成的文本。
$("#button").click(function(){
// something should goes here to prevent stealing inputs focus
});
是否有任何解决方案可以防止通过该特殊按钮窃取焦点?
答案 0 :(得分:1)
您无法使用表单button
,只需使用<span>
表示它的行为就像一个按钮?
更新:
您可以使用类似
的内容$('span').hover(function(){
focused_element = $("*:focus").get(0);
});
$('span').click(function(){
focused_element.focus();
});
答案 1 :(得分:0)
您的字段是否具有唯一ID?如果是,请在单击对话框的保存/关闭按钮时使用该ID将焦点设置回字段。
一旦完成,不要担心焦点被盗,而是重置它。
答案 2 :(得分: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的想法