如何在 Ext.Msg.alert 的 "OK" 上触发点击事件?
How to fire an click event on the "OK" of Ext.Msg.alert?
成功保存表单后,将触发警报,如下所示:
Ext.Msg.alert('Success','Changes saved successfully');
如何通过 javascript
或 extjs
在 "OK" 上触发 click event
?
参考Programmatically call handler of a button event?,下面是有效的,但是找出由extjs
生成的button-id
看起来不是个好主意。
var btn = Ext.getCmp('button-id');
var e = null; // we don't have any event, so let's use nothing
Ext.callback(btn.handler, btn.scope, [btn, e], 0, btn);
下面是捕获确定按钮点击事件的代码:
Ext.Msg.alert('Name', 'Please enter your name:', function(btn, text){
if (btn == 'ok'){
console.log("OK clicked");
// you code here
}
});
您可以从 Ext.Msg
(或您正在使用的消息框的任何 none-单例实例)向下查看组件层次结构。在 ExtJS 6 经典中,要走的路是:
Ext.Msg.down('button[itemId=ok]').click();
我做了一个小 fiddle 显示 the working solution。
首先,只要你将显示 Ext.Msg.alert()
存储在这样的变量中
var msg = Ext.Msg.alert('Success', 'Changes save successfully')
然后在你可以使用 msg.down('#ok')
获得确定按钮后,这将 return OK
按钮。按钮具有 fireHandler()
的方法,因此您可以使用它以编程方式调用处理程序。
在此Fiddle中,我创建了一个演示。
注意 我已经使用 Ext.defer
函数在 3 秒后触发处理程序。您可以根据需要随时更改。
代码片段
Ext.application({
name: 'Fiddle',
launch: function () {
var msg = Ext.Msg.alert('Success', 'Changes save successfully', function (btn) {
if (btn == "ok") {
console.log(btn);
}
});
//Defer is just only for demo
//You can put your logic based on requirement
//I am just giving example of how to fire the event
Ext.defer(function () {
var buttonOk = msg.down('#ok')
buttonOk.fireHandler(buttonOk);
}, 3000);
}
});
成功保存表单后,将触发警报,如下所示:
Ext.Msg.alert('Success','Changes saved successfully');
如何通过 javascript
或 extjs
在 "OK" 上触发 click event
?
参考Programmatically call handler of a button event?,下面是有效的,但是找出由extjs
生成的button-id
看起来不是个好主意。
var btn = Ext.getCmp('button-id');
var e = null; // we don't have any event, so let's use nothing
Ext.callback(btn.handler, btn.scope, [btn, e], 0, btn);
下面是捕获确定按钮点击事件的代码:
Ext.Msg.alert('Name', 'Please enter your name:', function(btn, text){
if (btn == 'ok'){
console.log("OK clicked");
// you code here
}
});
您可以从 Ext.Msg
(或您正在使用的消息框的任何 none-单例实例)向下查看组件层次结构。在 ExtJS 6 经典中,要走的路是:
Ext.Msg.down('button[itemId=ok]').click();
我做了一个小 fiddle 显示 the working solution。
首先,只要你将显示 Ext.Msg.alert()
存储在这样的变量中
var msg = Ext.Msg.alert('Success', 'Changes save successfully')
然后在你可以使用 msg.down('#ok')
获得确定按钮后,这将 return OK
按钮。按钮具有 fireHandler()
的方法,因此您可以使用它以编程方式调用处理程序。
在此Fiddle中,我创建了一个演示。
注意 我已经使用 Ext.defer
函数在 3 秒后触发处理程序。您可以根据需要随时更改。
代码片段
Ext.application({
name: 'Fiddle',
launch: function () {
var msg = Ext.Msg.alert('Success', 'Changes save successfully', function (btn) {
if (btn == "ok") {
console.log(btn);
}
});
//Defer is just only for demo
//You can put your logic based on requirement
//I am just giving example of how to fire the event
Ext.defer(function () {
var buttonOk = msg.down('#ok')
buttonOk.fireHandler(buttonOk);
}, 3000);
}
});