有没有办法将焦点设置到jquery对话框窗口中的输入文本框?我在这里看了一些其他的问题,但找不到答案。
我试过..
, open: function() { $(this).find("#inp").focus(); }
但它不起作用。
有什么想法吗?感谢。
更新
通过ajax调用获取对话框窗口的内容。
答案 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。