Javascript 仅在渲染后聚焦?
我正在尝试添加一个新的输入字段,并在单击按钮时将焦点设置到新的输入字段。输入字段已生成,但我无法获得焦点以转到新的输入字段。只有在第二次单击后,才会设置焦点。有人能解释一下为什么这不起作用,或者我怎样才能让它起作用Javascript 仅在渲染后聚焦?,javascript,jquery,sapui5,Javascript,Jquery,Sapui5,我正在尝试添加一个新的输入字段,并在单击按钮时将焦点设置到新的输入字段。输入字段已生成,但我无法获得焦点以转到新的输入字段。只有在第二次单击后,才会设置焦点。有人能解释一下为什么这不起作用,或者我怎样才能让它起作用 var oInp1 = new sap.m.Input({value:"123",width:"50%"}); oInp1.placeAt( "content" ); var oBtn1 = sap.m.Button( { text:"Next", press:func
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" );
谢谢你抽出时间。结果仍然是一样的。单击按钮两次后,焦点仅设置为第二个输入字段。我期待着点击按钮,并有一个新的重点与它的输入字段。工作对我来说也是。到现在为止,你听说过什么合适的方法吗?
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" );