0

我有一个在 jQuery Fancybox 窗口中打开的表单。当页面加载时,fancybox 窗口会自动打开。当它加载时,我希望它在 Fancybox 窗口中的表单中的用户名字段上设置焦点。我发现这必须在调用 fancybox 时完成,因此我尝试了给定的不起作用的代码:代码片段:

jQuery(document).ready(function() {
$("#hidden_link").trigger('click');
document.getElementById('username').focus(); 
});

表单名称为“login_form”,字段 ID 为“用户名”。

4

3 回答 3

1

我不太确定你使用的是什么版本。

我假设您使用版本 1,所以在调用 fancybox 时尝试添加此选项

  • onStart 将在尝试加载内容之前被调用
  • onCancel 加载取消后会调用
  • onComplete 一旦显示内容就会被调用
  • onCleanup 将在关闭之前调用
  • onClosed 一旦 FancyBox 关闭就会被调用

这来自fancybox api文档http://fancybox.net/api

并添加您要使用的功能。

在这种情况下

$('#somediv').fancybox({
    oncomplete: function() {
        document.getElementById('username').focus();
    }
});
于 2013-01-29T07:04:59.843 回答
0

您试图在幻想框出现之前调用 focus() 。与其将调用放在 ready() 中,不如将其放在 onComplete() 中。

onComplete: function() { 
          $('#username').focus(); 
}
于 2013-01-29T07:07:19.563 回答
0

我必须使用 setTimeout 来解决这个问题。

onComplete: function() { setTimeout(function() { $('.sms_code')["1"].focus(); }, 1000); }

于 2015-07-21T13:52:49.437 回答