【发布时间】:2017-11-24 07:35:07
【问题描述】:
正如标题所说,我需要捕获选项卡的更改事件并向用户显示确认消息框。我实现了这一点,但使用 confirm JS 原生函数。我想使用 ExtJS 的 Ext.Msg.show() 来执行此操作,但程序流程并不会像 confirm 函数那样停止。看下面两种方式:
'Ext.Msg.show()'方式:
onBeforeTabChange: function(panel, nextTab, oldTab)
{
var bReturn = true;
if (null != oldTab)
{
if(AppGlobals.isEditing=='si')
{
Ext.Msg.show(
{
title: 'Warning',
msg: 'Leave without saving changes?',
buttons: Ext.Msg.YESNO,
icon: Ext.Msg.WARNING,
closable: false,
buttonText:
{
yes : 'Yes, sure',
no : 'No, will save changes first'
},
fn: function (buttonId)
{
if(buttonId=="yes")
{
AppGlobals.isEditing = 'no';
bReturn = true;
}
else
{
bReturn = false;
}
}
});
}
else
{
bReturn = true;
}
}
return bReturn;
}
正如我之前所说,上面的代码不会停止程序流程。出现警报,但选项卡仍然发生变化。
'确认'方式:
onBeforeTabChange: function(panel, nextTab, oldTab)
{
var bReturn = true;
if (null != oldTab)
{
if(AppGlobals.isEditing=='si')
{
bReturn = confirm('Leave without saving changes?');
if(bReturn==true)
{
AppGlobals.isEditing = 'no';
}
}
else
{
bReturn = true;
}
}
return bReturn;
}
上面的代码确实有效,并且标签在用户点击“是”之前不会改变。
有什么帮助吗?提前致谢。
【问题讨论】:
标签: extjs tabs extjs4 sencha-touch