Javascript SAPUI5将焦点设置在输入字段上
我有以下问题: 我有两个带有几个输入字段的XML视图,在导航到第二个视图时,重点应该放在第五个(ID=“RueckmeldeNr”)字段上 我尝试了几件事,但都没用。。 如果我使用jQuery delayedCall,焦点会在输入字段上短暂闪烁,但会立即设置为左上角的导航按钮。Javascript SAPUI5将焦点设置在输入字段上,javascript,sapui5,Javascript,Sapui5,我有以下问题: 我有两个带有几个输入字段的XML视图,在导航到第二个视图时,重点应该放在第五个(ID=“RueckmeldeNr”)字段上 我尝试了几件事,但都没用。。 如果我使用jQuery delayedCall,焦点会在输入字段上短暂闪烁,但会立即设置为左上角的导航按钮。 我使用的方法是错误的还是忘记了什么?我怎样才能解决这个问题 onAfterRendering : function(oEvent) { oInputRueck = this.getView().byId("Rueckme
我使用的方法是错误的还是忘记了什么?我怎样才能解决这个问题
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();
});
},
我希望你能帮助我谢谢答案由我自己解决 我刚刚把延迟通话拨到500毫秒,它就成功了
jQuery.sap.delayedCall(500, this, function() {
this.getView().byId("RueckmeldeNr").focus();
});
只是一个建议:
您可以将焦点设置为视图中所需的字段(或定义该字段的位置)
例如,在view1中定义:
var oInput = new sap.m.Input({id: "inputID"})
.addEventDelegate({
onAfterRendering: function(){
oInput.focus();
}
});
然后,调用视图时,焦点应自动设置为必填字段
这里是一个工作的JSBIN示例:它可以工作,但是ms高于
0
时,使用适当的事件,例如,之后*
。。。这取决于哪个控件被用作容器。我在绝望中尝试了这个,虽然它有点工作,但它是一个黑客。最终,我通过在sap.m.App容器上设置autoFocus=false正确地解决了这个问题。这个答案要归功于@schnoedel:在没有导航的情况下,这非常有效。然而,当它是时,第一个可聚焦控件(不一定是输入)将在用户返回导航时聚焦,因为在返回导航时控件不会被重新渲染。在这种情况下,我们需要利用。可能重复的