对话框中的OOB NewForm在几秒钟后失去焦点

时间:2011-11-26 17:53:31

标签: sharepoint-2010 dialog sharepoint-designer

使用SharePoint Designer 2010在SharePoint 2010中工作,我有一个DispForm,我添加了一个显示另一个相对列表的过滤视图的DVWP。 DVWP有一个“新建”链接,使用OpenPopUpPage(http://msdn.microsoft.com/en-us/library/ff410825.aspx)在模式对话框中打开该列表的NewForm。

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

如果用户注意到模态已失去焦点并单击表单,则一切正常,并且一切正常。

观察:

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

问题:

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

就这样我在这个网站上获得了一些观点,痛苦是第一个模态的异步刷新。它将焦点从分层模态中移开。

感谢JB的回答!

答案 2 :(得分:0)

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

因此,我们关闭了自动刷新并使用模态关闭的回调来触发单击手动刷新按钮。