SAPUI5将焦点设置在输入字段上

时间:2015-10-16 08:54:13

标签: javascript sap sapui5 setfocus

我有以下问题:

我有2个带有几个输入字段的XML视图,在导航到第二个视图时,焦点应该是第5个(ID =“RueckmeldeNr”)字段。

我尝试了几件事,但没有任何效果...... 如果我使用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();
    });
},

我希望你能帮帮我! 谢谢

2 个答案:

答案 0 :(得分:2)

答案由我自己解决。

我只是把delayedCall放在500毫秒上就可以了。

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

答案 1 :(得分:1)

只是一个建议:

您可以将焦点设置到视图中的所需字段(或您定义的位置)。

例如,在view1中定义:

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

然后,当您调用视图时,焦点应自动设置为必填字段。

这是一个有效的JSBIN示例:LINK