以编程方式模糊 EXTJS 3.2.1 中的组合框控件不会触发“模糊”事件
Programmatically Blurring combobox control in EXTJS 3.2.1 does not fire 'blur' event
当用户关闭没有保存的选项卡时,我正在尝试实现确认对话框。
为此,我使用了组件的(文本字段、复选框、组合框等)。"更改"事件。但是,由于"change"事件要求字段模糊,因此如果用户更改了字段,但在关闭选项卡之前没有失去字段的焦点,则会出现问题。
为了解决这个问题,我使用选项卡的"beforeclose"事件以编程方式模糊()活动元素,因此在字段已更改时触发"change"事件:
listeners: {
beforeclose: function(form) {
var focusedEl = Ext.getCmp(document.activeElement.id);
focusedEl.blur();
if(tabRC.F('AgentCaseForm').dirty.items.length > 0) {
return(confirm('There are unsaved changes on this tab. Are you sure you want to close?'));
}
}
}
此方法适用于所有控件(文本字段、文本区域、复选框、日期字段),但组合框除外。字段模糊,但"模糊"事件不会触发,因此"更改"事件不会触发。我错过了这个原因吗?谢谢!
编辑:我尝试以编程方式触发"模糊"事件,但"更改"事件仍然没有触发。
focusedEl.fireEvent('blur');
编辑2:解决方案是这样做:
var focusedEl = Ext.getCmp(document.activeElement.id);
if (focusedEl && focusedEl.isDirty()) {
focusedEl.fireEvent('change');
}
由于Ext.form.ComboBox
正在扩展Ext.form.TriggerField
,因此您可以通过以下方式编程触发模糊
focusedEl.triggerBlur();
相关文章:
- 音频控件在mouseover上显示,在mouseout上淡出
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- 如何更改文本框控件的不透明度值
- 所有控件的组合框
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 在angularjs中创建自定义控件的推荐方法
- 自定义控件中的双向绑定在SAPUI5中不起作用
- 如何在ASP中为用户控件添加Javascript对象网
- Dynamics 2016内部部署Crm客户端脚本.选项集控件类型缺少方法
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 在HTML5画布上添加按钮和控件
- 隐藏HTML5视频控件
- 向ASP控件添加自定义事件
- 从IE中的不同元素调用时,文件输入控件未正确启动
- 当用户点击音频控件时,无法接收点击事件
- 在codeigniter中具有控件的looper.js
- 以编程方式模糊 EXTJS 3.2.1 中的组合框控件不会触发“模糊”事件