我想验证我的 extjs 表单。当文本字段为空时,应该显示一个警告框,然后我们的光标必须集中在文本框上。我尝试使用下面的编码。警报工作正常。但光标没有聚焦。你能帮我集中注意力吗?
if(Ext.get('first').dom.value=='')
{
Ext.MessageBox.alert('Status', 'Enter your First Name!');
document.getElementById("first").focus();
}
我想验证我的 extjs 表单。当文本字段为空时,应该显示一个警告框,然后我们的光标必须集中在文本框上。我尝试使用下面的编码。警报工作正常。但光标没有聚焦。你能帮我集中注意力吗?
if(Ext.get('first').dom.value=='')
{
Ext.MessageBox.alert('Status', 'Enter your First Name!');
document.getElementById("first").focus();
}
该文档指出 MessageBox 是异步的:
请注意,MessageBox 是异步的。与常规的 JavaScript 警报(将停止浏览器执行)不同,显示 MessageBox 不会导致代码停止。出于这个原因,如果您的代码应该只在 MessageBox 的一些用户反馈后运行,您必须使用回调函数(有关详细信息,请参阅函数参数)。
因此,您的 focus() 是在调用 Ext.MessageBox.alert 后立即执行的,而不是在用户关闭它时执行:当用户单击关闭警报时,焦点将再次改变。
您可以尝试使用常规的 javascript alert() 代替,它是同步的。
if (Ext.get("first").dom.value == "") {
Ext.MessageBox.alert("Status", "Enter your First Name!", function() {
Ext.get("first").focus();
});
}
尝试这个
if(Ext.get('first').dom.value=='')
{
Ext.Msg.alert('Status', 'Enter your First Name!', function(btn, text){
if (btn == 'ok'){
Ext.getCmp('first').focus(true,10);
}
});
}