2017-12-28 66 views
1

확인 도장 버튼에 초점을 맞출 수 없습니다내가 검색의 또 다른 도장 (searchDlg) 찾지 못하는 결과가</p> <p>그래서, 도장 (searchNotFound)가 최대 인 경우 <code>dojo</code> (searchNotFound)를 실행하려고하지만, 초점을 맞추고 있지 않다

기능 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 ****** 
       } 

} 
(I이 버튼 확인에 이벤트 onkeypress을했습니다 원인) OK

그래서,이 내 코드입니다 도장의 OK 버튼 (searchnotfound_close)에

때 onKeyPress 이벤트 (searchNotFound) :

는 -> (이벤트)

미세

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

기능 closeSearchNotFound 작동 -> 작품 파인

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

가 dojo.byId ("searchnotfound_close")는 DOM을 반환 하는가를? 그렇다면 setTimeout (function() {dojo.byId ("searchnotfound_close"). focus();}, 1000)에서 포커스를 설정하십시오. –

+0

그것의 일, 감사 –

+0

당신을 환영합니다. –

답변

0

나는 'searchNotFound'가 dijit/Dialog라고 가정하고 있습니다. show()는 애니메이션이있는 대화 상자를 표시하므로 비동기입니다. 따라서 show()는 dojo/promise/Promise을 반환합니다. 약속이 완료되면 대화 상자가 완전히 렌더링되고 이후 검색이 수행됩니다.

는 약속을 사용하여 자신의 콜백 등록 :

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