我的 extjs 应用程序中有一个组合,我想显示“你确定吗?” 如果用户拒绝,则向用户确认窗口并防止更改。
由于 JavaScript 的确认框是同步的,因此可以正常工作。但是使用 Ext JS,会显示确认消息,并且我的其余代码将在用户响应之前执行。这是我的代码:
// JavaScript confirm box
{
xtype: 'combo',
...
...
...
listeners: {
beforeselect: function(combo, record, index ) {
if(confirm('Are you sure ?') == false)
{
return false; // prevent combo from changing
}
// else continue
}
}
}
// Ext JS message box (to confirm)
{
xtype: 'combo',
...
...
...
listeners: {
beforeselect: function(combo, record, index ) {
Ext.Msg.show({
title: 'Warning',
msg: 'Are You Sure ?',
buttons: Ext.Msg.YESNO,
fn: function(btn) {
if (btn == 'yes') {
// continue and set new value on combo
}
else if (btn == 'no') {
// prevent combo from changing
}
}
});
}
}
}
问题是Ext.Msg.show
获取回调函数并且不等待用户回答并且我们无法阻止组合框更改。
我应该怎么办?