成功保存表单后,会触发警报并显示如下:
Ext.Msg.alert('Success','Changes saved successfully');
如何在" OK"上点击click event
通过javascript
或extjs
?
请参阅Programmatically call handler of a button event?,以下内容有效,但查找由button-id
生成的extjs
似乎不太明智。
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);
答案 0 :(得分:1)
您可以从Ext.Msg
(或您正在使用的任何非单例实例的消息框)向下查看组件层次结构。在ExtJS 6 classic中,要走的路是:
Ext.Msg.down('button[itemId=ok]').click();
我做了一个显示the working solution的小提琴。
答案 1 :(得分:1)
首先,只要您在此变量中显示Ext.Msg.alert()
存储
var msg = Ext.Msg.alert('Success', 'Changes save successfully')
然后,您可以使用msg.down('#ok')
获得确定按钮,这将返回OK
按钮。并且按钮具有fireHandler()
的方法,因此您可以使用它以编程方式调用处理程序。
在 FIDDLE 中,我创建了一个演示版。希望这有助于/指导您实现您的要求。
注意我使用Ext.defer
函数在3秒后触发处理程序。您可以随时根据自己的要求进行更改。
CODE SNIPPET
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);
}
});
答案 2 :(得分:0)
下面是用于捕获OK按钮单击事件的代码:
Resource Exhausted error