无法聚焦于dojo按钮确定

b4lqfgs4  于 2022-12-16  发布在  Dojo
关注(0)|答案(1)|浏览(170)

我正在尝试运行dojo(searchNotFound),如果另一个搜索Dojo(searchDlg)没有找到结果
因此,dojo(searchNotFound)已启动,但未关注OK(因为我在此按钮OK上有一个事件onkeypress
这是我的代码

查找字符串()函数:

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)的确定按钮(searchnotfound_close)上的OnKeyPress事件:

--〉工作正常

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

函数关闭搜索未找到(事件)

--〉工作正常

//#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

jexiocij

jexiocij1#

我假设'searchNotFound'是一个dijit/Dialog。show()是异步的,因为它用动画显示对话框。正因为如此,show()返回一个dojo/promise/Promise。一旦承诺完成,对话框就完全呈现了,你随后的搜索应该可以工作了。
使用该承诺并注册您自己的回调:

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

相关问题