在我的ExtJs代码中,我正在检查警告标志的值。
如果设置了标志,我想向用户显示一个确认(OKCANCEL)框,我询问用户是否要继续,即使有警告。
现在就像任何确认框一样,如果用户点击OK,代码应该按顺序进入下一个命令,如果他点击CANCEL,代码应该返回。
以下是我的代码:
if(warning){
Ext.MessageBox.show({
title: 'Icon Support',
msg: 'Are you sure you want to proceed?',
buttons: Ext.MessageBox.OKCANCEL,
icon: Ext.MessageBox.WARNING,
fn: function(btn){
if(btn == 'ok'){
// go to the alert statement below.
} else {
return;
}
}
);
alert('wants to proceed ahead'); //if user clicks OK then come here
}
现在我面临的问题是,当代码进入if
块时,它会显示消息框,然后它会发出警告wants to proceed ahead
。
我可以通过在return;
之前添加alert()
声明来阻止这种情况发生。
但是,如何在用户单击“确定”按钮后转到警告声明?
答案 0 :(得分:3)
回调它是事件驱动架构,而JavaScript则是解释编程语言。
所以最好的方法是
function SomeFunc(){
//some code
}
if(warning){
Ext.MessageBox.show({
title: 'Icon Support',
msg: 'Are you sure you want to proceed?',
buttons: Ext.MessageBox.OKCANCEL,
icon: Ext.MessageBox.WARNING,
fn: function(btn){
if(btn == 'ok'){
SomeFunc();
} else {
return;
}
}
});
}
答案 1 :(得分:0)
需要注意的是,我认为您的警报可能只是您希望用作实际代码处理占位符的代码示例。
但是,如果它是第一行更多代码,普通警报将阻止浏览器的处理并从当前窗口中移除焦点。
http://www.w3schools.com/jsref/met_win_alert.asp
我第二次谢谢谢谢的回复,只需重新排列代码以正确获取回调函数,现在需要在“确定”上继续处理消息。我考虑了循环,但这不安全。