【发布时间】:2011-10-12 16:42:54
【问题描述】:
我遇到了一个带有许多标签和相应输入字段的 JQuery 模式表单的问题。
当我打开 JQuery 模式表单并向下滚动时会出现此问题。当我关闭并重新打开 JQuery 模式表单时,表单会自动滚动,以便第一个输入字段位于表单顶部并具有键盘焦点。但是,这会切断第一个输入字段上方的标签和标题。
我已经尝试过 $("input").blur(),并且成功地禁用了第一个输入元素上的键盘焦点,但是模态表单仍然自动滚动,以便第一个输入表单与屏幕顶部齐平.
我还尝试在 JQuery 模态表单中将隐藏输入字段置于其他所有内容之上,但 Firefox 对此很聪明,并且仍然滚动到第一个活动的非隐藏输入元素。
以前有没有人遇到过这种情况,如果有,有没有人知道正确的解决方法?
【问题讨论】:
-
只是在思考...打开时重新加载模态的内容会不会有问题?这应该可以解决问题,尽管以服务器请求为代价。
-
当您说“当我打开 JQuery 模态表单并向下滚动时”,我想知道为什么要关注第一个控件?您在任何地方都没有一些 javascript 执行
focus()或scrollIntoView()吗? -
否定,我根本没有在我的代码中调用任何 focus() 或 scrollIntoView() 函数。我认为它与 JQuery 相关,但我不确定。我可以重新加载模式的内容,但我在一个框架内工作,服务器请求涉及显着延迟(5-10 秒,可怕),所以我在页面加载时将自己限制为一个服务器请求。我已经解决了这个问题(见下文),虽然我很沮丧这似乎是一个框架或 JQuery 怪癖。
标签: javascript jquery forms firefox focus