2011-07-25 41 views
1

我遇到了一个JQuery模式表单,其中有许多标签和相应的输入字段。JQuery模式表单输入字段自动对焦问题

当我打开JQuery模式窗体并向下滚动时,会发生该问题。当我关闭并重新打开JQuery模式表单时,表单会自动滚动,以便第一个输入字段位于表单顶部并具有键盘焦点。但是,这会切断第一个输入字段上方的标签和标题。我已经尝试了$(“输入”)。blur(),并且成功禁用了第一个输入元素上的键盘焦点,但模式窗体仍然自动滚动,以便第一个输入窗体与顶部屏幕。

我也尝试在JQuery模式表单中放置一个隐藏的输入字段,但Firefox很聪明,仍然会滚动到第一个非隐藏的输入元素。

有没有人遇到过这种情况,如果有的话,有没有人知道它的正确决议?

+1

只是琢磨......重新加载打开模式的内容会有问题吗?这应该可以解决问题,尽管这是以服务器请求为代价的。 –

+1

当你说“当我打开JQuery模式窗体并向下滚动”时,我想知道为什么它将重点放在第一个控件上?你有没有一些JavaScript在你的任何地方做'focus()'或'scrollIntoView()'? –

+0

否定的,我没有在我的代码中调用任何focus()或scrollIntoView()函数。我认为它与JQuery相关,但我不确定。我可以重新加载模式的内容,但是我正在一个框架内部工作,其中涉及服务器请求的显着延迟(5-10秒,可怕),所以我在页面加载时将自己限制为一个服务器请求。我已经解决了这个问题(见下文),虽然我很沮丧,这似乎是一个框架或JQuery怪癖。 – sichinumi

回答

1

问题已解决。我在JQuery模式对话框div上使用了scrollTop()方法,如下所示:

$(“dialog”)。scrollTop(0);

由于Firefox的自动定位显然不与自动对焦相关,因此这与自动对焦/模糊问题是分开的,不同的。