我想验证我的extjs表单.当文本字段为空时,应显示一个警告框,然后我们的光标必须关注文本框.我尝试了下面的编码.警报工作正常.但光标没有聚焦.能帮助我任何人专注吗?
if(Ext.get('first').dom.value=='') { Ext.MessageBox.alert('Status', 'Enter your First Name!'); document.getElementById("first").focus(); }
Paul Dixon.. 8
该文件指出的MessageBox是异步的:
请注意,MessageBox是异步的.与常规JavaScript警报(将停止浏览器执行)不同,显示MessageBox不会导致代码停止.因此,如果您的代码只应在MessageBox的一些用户反馈之后运行,则必须使用回调函数(有关详细信息,请参阅show的函数参数).
因此,您的focus()在调用Ext.MessageBox.alert后立即执行,而不是在用户解除它时:当用户单击以关闭警报时,焦点将再次更改.
您可以尝试使用常规的javascript alert(),这是同步的.
该文件指出的MessageBox是异步的:
请注意,MessageBox是异步的.与常规JavaScript警报(将停止浏览器执行)不同,显示MessageBox不会导致代码停止.因此,如果您的代码只应在MessageBox的一些用户反馈之后运行,则必须使用回调函数(有关详细信息,请参阅show的函数参数).
因此,您的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(); }); }