我试图添加一个新的输入字段,并在单击按钮时将焦点设置到新的输入字段。输入字段已生成,但我无法集中精力进入新的输入字段。仅在第二次单击后,才会设置焦点。有人可以解释为什么这行不通,或者我如何使它行得通吗?
var oInp1 = new sap.m.Input({value:"123",width:"50%"});
oInp1.placeAt( "content" );
var oBtn1 = sap.m.Button( {
text:"Next",
press:function(){
oInp2.setVisible(true);
oInp2.focus();
}
} );
oBtn1.placeAt( "content" );
var oInp2 = new sap.m.Input({value:"abc", width:"50%", visible:false });
oInp2.placeAt( "content" );
最佳答案
在将焦点设置为inp2之后,一些背景渲染将成为焦点。这是一个可行的解决方法。您只需等待200毫秒(通常应完成所有渲染),然后请求将焦点放在inp2上。
var oInp1 = new sap.m.Input({value:"123",width:"50%"});
oInp1.placeAt( "content" );
var oBtn1 = sap.m.Button( {
text:"Next",
press:function(){
var oInp2 = new sap.m.Input({value:"abc"});
oInp2.placeAt( "content" );
jQuery.sap.delayedCall(200, this, function() {
oInp2.focus();
});
}
} );
oBtn1.placeAt( "content" );
关于javascript - 仅在渲染后才聚焦?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23078319/