2015-10-16 218 views
2

我有以下問題:SAPUI5將焦點設置輸入字段

我有幾個輸入字段,並在導航到所述第二視圖中的重點應放在對第五(ID =「RueckmeldeNr」)2個XML視圖領域。

我嘗試了幾件事情,但沒有任何工作。 如果我使用jQuery delayedCall,焦點在輸入字段上不久閃爍,但立即設置爲左上角的NavBack按鈕。
我是否使用虛假或遺忘的方法?我該如何解決這個問題?

onAfterRendering : function(oEvent) { 
oInputRueck = this.getView().byId("RueckmeldeNr"); 
// this.getView().byId("RueckmeldeNr").focus(); 
// this.getView().byId("RueckmeldeNr").$().focus(); 
// jQuery.sap.delayedCall(200, this, function() { 
//  //this.getView().byId("RueckmeldeNr").focus(); 
//  oInputRueck.focus(); 
// }); 
// var oFocusInfo = this.getView().byId("RueckmeldeNr").getFocusInfo() 
// this.getView().byId("RueckmeldeNr").applyFocusInfo(oFocusInfo); 
    jQuery.sap.delayedCall(0, this, function() { 
     oInputRueck.focus(); 
    }); 
}, 

我希望你能幫助我!
謝謝

+0

的可能的複製[如何在一個視圖設置初始的重點是什麼?(https://stackoverflow.com/questions/36376599/how-to-set-initial-專注於視圖) – boghyon

回答

1

只是一個建議:

你可以在視圖焦點設置爲必填字段(或任何你定義它)。

例如,在廠景定義:

var oInput = new sap.m.Input({id: "inputID"}) 
.addEventDelegate({ 
    onAfterRendering: function(){ 
     oInput.focus(); 
    } 
}); 

然後,當調用視圖,重點應被自動設置到所需的字段。

這裏是一個工作JSBIN例如:LINK

+1

在沒有導航涉及的情況下,這很有用。但是,如果第一個可對焦控件(不一定是輸入)將在用戶導航時重點關注,因爲控件在返回導航時不會重新渲染。在這種情況下,我們需要使用[導航相關事件,例如'afterShow'](https://stackoverflow.com/a/48492088/5846045)。 – boghyon

2

答案由我自己解決。

我只是把delayedCall放在500毫秒,它的工作。

jQuery.sap.delayedCall(500, this, function() { 
    this.getView().byId("RueckmeldeNr").focus(); 
}); 
+0

它可以工作,但'delayedCall' /'setTimeout'的ms高於'0'[應該避免。](https://ui5.sap.com/#/topic/030fcd14963048218488048f407f8f34.html #loio030fcd14963048218488048f407f8f34__11)相反,請使用適當的事件,例如['afterShow'](https://ui5.sap.com/#/api/sap.m.NavContainerChild/events/AfterShow),['afterOpen'](https ://ui5.sap.com/#/api/sap.m.Dialog/events/afterOpen),'*之後',...取決於哪個控件用作容器。 – boghyon

相關問題