我正在尝试添加新的输入字段,并在点击按钮时将焦点设置到新的输入字段。生成输入字段但我无法将焦点转到新的输入字段。只有在第二次单击后才会设置焦点。有人可以解释为什么这不起作用,或者我怎么能使它起作用?
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" );
答案 0 :(得分:1)
将焦点设置在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" );
答案 1 :(得分:0)
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" );
oInp2.focus();
}
} );
oBtn1.placeAt( "content" );