如何通过JavaScript/ExtJS触发Ext.Msg.alert的OK按钮点击事件?
触发ExtJS提示框OK按钮点击事件的方法
嘿,我来帮你解决这个触发ExtJS提示框OK按钮点击的问题~
首先先明确你说的场景:表单保存成功后会弹出这个提示框,对应的代码是:
Ext.Msg.alert('Success','Changes saved successfully');
实际显示的提示框是这样的:
你提到的通过组件ID查找按钮的方法确实能实现功能,但说实话这不是个好方案——因为ExtJS自动生成的按钮ID是动态且不稳定的,说不定哪天版本更新或者渲染顺序变了,这个ID就失效了。先把这个方案贴出来给你参考:
var btn = Ext.getCmp('button-id'); var e = null; // 没有实际的事件对象,传null就行 Ext.callback(btn.handler, btn.scope, [btn, e], 0, btn);
那更靠谱的方法是什么呢?其实我们可以直接从ExtJS的消息框实例里获取按钮,完全不用依赖ID:
// 获取当前显示的alert提示框实例 var alertWindow = Ext.Msg.getDialog(); // 找到OK按钮——alert默认只有一个OK按钮,所以取工具栏里的第一个元素就行 var okBtn = alertWindow.getToolbar().items.get(0); // 调用按钮的处理逻辑,和手动点击OK的效果一模一样 okBtn.handler.call(okBtn.scope, okBtn, null);
还有更简单的方式:如果你只是想达到点击OK后的效果(关闭提示框+触发回调),直接调用Ext.Msg.hide()就行,这个方法会模拟点击OK的整个流程,包括触发你可能设置的回调函数。
内容的提问来源于stack exchange,提问作者caot
相关产品推荐
相关产品推荐

