无法专注于道场按钮确定

时间:2017-12-28 09:51:35

标签: javascript html dojo

我正在尝试运行dojo(searchNotFound),如果另一个搜索道具(searchDlg)找不到结果

所以,dojo(searchNotFound)已经启动,但没有关注OK(因为我在这个按钮上有一个事件onkeypress

所以,这是我的代码:

函数FindString():

      function findString(str) {

        //Some Code

        //if serach not founding , running dojo searchNotFound
        if (!strFound) {
                    dojo.widget.byId("searchDlg").hide();
                    dojo.widget.byId("searchNotFound").show();
                    dojo.byId("searchnotfound_close").focus(); --> ****** not working ******
                }

}

在dojo(searchNotFound)的OK按钮(searchnotfound_close)上的OnKeyPress事件:

- >工作正常

<button class="btn dlg" id="searchnotfound_close" onkeypress="javascript:closeSearchNotFound(event)"><span key="ok">Ok</span></button>

功能closeSearchNotFound(事件)

- &GT;工作正常

//#96985
function closeSearchNotFound(event) {
if(event.which == 13){
    dojo.widget.byId('searchNotFound').hide();
    dojo.widget.byId('searchDlg').show();
    }
}
//

请参阅此测试视频: https://www.youtube.com/watch?v=cM4rCtP7REA&feature=youtu.be

1 个答案:

答案 0 :(得分:1)

我假设&#39; searchNotFound&#39;是一个dijit / Dialog。 show()是异步的,因为它显示带动画的对话框。因此,show()返回dojo/promise/Promise。一旦承诺完成,对话框将完全呈现,您的后续搜索应该可以正常工作。

使用承诺并注册您自己的回调:

&#13;
&#13;
registry.byId("searchNotFound").show().then(
  function() {
    dojo.byId("searchnotfound_close").focus();
  });
&#13;
&#13;
&#13;