使用extjs Ext.MessageBox.alert后如何聚焦文本框

4 extjs

我想验证我的extjs表单.当文本字段为空时,应显示一个警告框,然后我们的光标必须关注文本框.我尝试了下面的编码.警报工作正常.但光标没有聚焦.能帮助我任何人专注吗?

if(Ext.get('first').dom.value=='')
{
    Ext.MessageBox.alert('Status', 'Enter your First Name!');
    document.getElementById("first").focus();
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*xon 8

文件指出的MessageBox是异步的:

请注意,MessageBox是异步的.与常规JavaScript警报(将停止浏览器执行)不同,显示MessageBox不会导致代码停止.因此,如果您的代码只应在MessageBox的一些用户反馈之后运行,则必须使用回调函数(有关详细信息,请参阅show的函数参数).

因此,您的focus()在调用Ext.MessageBox.alert后立即执行,而不是在用户解除它时:当用户单击以关闭警报时,焦点将再次更改.

您可以尝试使用常规的javascript alert(),这是同步的.


har*_*333 6

if (Ext.get("first").dom.value == "") {
    Ext.MessageBox.alert("Status", "Enter your First Name!", function() {
        Ext.get("first").focus();
    });
}
Run Code Online (Sandbox Code Playgroud)