2011-11-26 60 views
1

在SharePoint 2010中使用SharePoint Designer 2010,我有一个DispForm,我添加了一个DVWP,显示另一个相对列表的过滤视图。 DVWP有一个'New'链接,它使用OpenPopUpPage(http://msdn.microsoft.com/en-us/library/ff410825.aspx)在模式对话框中打开该列表的NewForm。对话中的OOB NewForm在几秒钟后失去焦点

5-12秒后,闪烁的光标从第一个控件中消失,焦点切换到“关闭”按钮。如果用户正在尝试键入,并且当焦点切换到“关闭”按钮时碰巧按Enter键,则背景不再变暗,并且“取消”按钮不再起作用。表单仍然显示在屏幕上,用户可以'保存',但模式不会消失,直到页面刷新。

如果用户注意到模式已失去焦点并单击表单上的所有内容,则一切正常,并且一切正常。

观察:

当控制/模态失去焦点时,该“关闭”按钮不会触发一个“的focusIn”事件。但是,控制台中显示的$(document.activeElement).attr(“value”)显示它是活动元素。

问题:

  1. 为什么模态失去焦点?
  2. 有没有人有一个JavaScript/jQuery解决方法来捕获事件并将焦点设置回原来的位置?
  3. 或者,如果我锁定表单并等待焦点更改完成,然后将其解锁并将焦点置于第一个字段上,该怎么办?想法?
+0

吉姆鲍勃 - 添加自己的答案并接受它,以便未来的人可以轻松找到答案。 –

回答

0

我想出了问题:DVWP正在使用自动刷新与异步更新。这是每15秒运行一次,将焦点从模态中移开,然后不返回到最后一个控制。

因此,我们转而使用自动刷新并使用模式关闭的回调来触发点击手动刷新按钮。

0

如果DispForm也是对话框,并且用脚本打开模式,则可能会出现问题。听起来你正在获得“分层”效果。我的猜测是管理对话框的脚本干扰了模态。你有没有试过关闭列表中的对话框?

+0

我们有这个问题,但用回调修复了这个问题。 发现问题,但是...我会更新上面的问题问题。 –

0

就这样我在这个网站上得到了一些观点,痛苦是第一个模态的异步刷新。它将重点放在分层模式上。

谢谢JB的答案!

+0

并感谢你,马特,添加回调点击手动刷新! :) –