如何在jquery对话框窗口中将焦点设置为文本框?

时间:2011-07-13 08:59:05

标签: jquery focus modal-dialog

有没有办法将焦点设置到jquery对话框窗口中的输入文本框?我在这里看了一些其他的问题,但找不到答案。

我试过..

, open: function() { $(this).find("#inp").focus(); }

但它不起作用。

有什么想法吗?感谢。

更新

通过ajax调用获取对话框窗口的内容。

2 个答案:

答案 0 :(得分:1)

尝试

$("#inp").focus();

但是如果你用AJAX加载对话框内容,那么你应该把焦点放在回调函数

$('#result').load('ajax/test.html', function() {
  $("#inp").focus();
});

答案 1 :(得分:0)

所以,你的开放功能有效吗?你检查过它是否找到了#inp?只是做

console.log($('#inp'));

在调用focus()时查看元素是否实际存在。如果不是,那么可能DOM没有完成构建(我假设,你的open()函数是从所述Ajax调用的回调中调用的,对吧?)。

调用完成后调用'success'和'error'Ajax-callbacks,但不一定在完成所有生成的DOM操作之后调用。我解决这个问题的一种(略微hacky)方式是将焦点延迟几毫秒:

setTimeout(function () {
    $(this).find("#inp").focus();
}, 50);

这为DOM提供了一些时间来放置#inp。