防止元素失去焦点

时间:2012-01-09 11:14:21

标签: javascript jquery

我们在文档中有很多input个 我们想要打开一个生成文本的对话框,并将其放在当前关注的输入中。

问题在于,当我单击按钮或其他任何内容以打开输入失去焦点的对话框时。我无法确定哪个输入必须获取生成的文本。

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

是否有任何解决方案可以防止通过该特殊按钮窃取焦点?

3 个答案:

答案 0 :(得分:1)

您无法使用表单button,只需使用<span>表示它的行为就像一个按钮?

更新:

您可以使用类似

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

查看my fiddle

答案 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的想法