ExtJS3下拉框取值与文本实例详解
ExtJS3中Combobox通过hiddenName提交真实值,显示文本和实际值分别从不同DOM元素获取。按钮点击推荐使用Ext getCmp() fireEvent();文本框取值用Ext getCmp() getValue();按钮禁用、启用、隐藏分别调用disable()、enable()、setVisible()方法。
在使用 ExtJS 的 Combobox 组件时,hiddenName 是一个关键属性,它负责提交用户在组合框中所选选项的 value 值。这个设计逻辑有时会让新手感到困惑,特别是刚接触 ExtJS 框架的开发者。
举个例子,假如某个 Combobox 的 Id 设置为 comboId,而它的 hiddenName 属性值为 hiddenValue。此时,通过 Ext.get('comboId').dom.value 获取到的是当前选中项的显示文本(text),并不是真正需要提交的 value 值。真正的 value 需要从 Ext.get('hiddenValue').dom.value 中读取。另外,直接使用 Ext.getCmp("ID值").getValue() 也能干净利落地拿到 value,省去了绕弯子的麻烦。
还有一个实用技巧:当处理 JSON 字符串时,如果想一次性移除所有换行、空格和制表符,可以这样写:.replace(/\s/g, ""); —— 一行代码轻松搞定。
接下来聊聊如何通过 ExtJS 触发按钮的点击事件。最直接的方法是查看 ExtJS 生成的 HTML 源码,找到该按钮在 DOM 中自动生成的 ID。比如:
方法1:使用原生 JavaScript,var btn = document.getElementById("ext-gen40"); 然后执行 btn.click();。但需要注意,ext-gen40 这类 ID 是由 ExtJS 随机分配的,在不同环境下可能变化,稳定性较差。
方法2:推荐使用 Ext.getCmp('title2d').fireEvent("click");,这里的 title2d 是你在 ExtJS 代码中自定义的组件 ID,固定且可靠。
如果想直接调用按钮的 handler 事件,可以这样操作:
var btn2d = Ext.getCmp("title2d");
btn2d.handler.call(btn2d.scope, btn2d);
请留意:onClick 是一个方法,而 handler 是一个配置项,两者在触发时机和调用方式上存在明显区别。
接下来讲解如何获取文本框的值,这里分为两种常见情况:
1. 原生 HTML 文本框: 例如
取值方式有两种:
var tValue = Ext.getDom('test').value;var tValue = document.getElementById('test').value;
2. ExtJS 组件文本框: 例如通过 xtype:'textfield' 定义的字段,通常还会设置 id: 'test'。
推荐使用以下方式取值:
var tValue = Ext.getCmp('test').getValue();- 或者
Ext.get('test').dom.value,但前者更贴合 ExtJS 组件的使用习惯。
相对地,给文本框设置值也非常便捷:Ext.getCmp('test').setValue("设置的值");
最后说一下按钮的启用和禁用控制,操作十分简单:
- 禁用:
Ext.getCmp('btnQc').disable(); - 启用:
Ext.getCmp('btnQc').enable();
还有两种常用的控制方式:一种是在定义 bbar 中的按钮时直接配置属性,比如 hidden : true 用于隐藏,disabled : true 用于禁用。另一种是先给按钮添加 id,然后在 panel 的相关事件中调用对应方法。此外,Ext.getCmp('btn').setVisible(false); 可以实现隐藏,Ext.getCmp('btn').setVisible(true); 则让按钮重新显示。
这些小技巧在实际开发中非常实用,随手记录下来,可以省去每次翻查文档的时间。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
如何用拖放在Flask看板应用中更新数据库状态
在Flask看板应用中,通过HTML5拖放API结合前端fetch异步POST请求,将拖拽任务的task_id和target_state发送至后端路由;后端接收JSON后更新数据库并提交事务,实现跨列拖拽时实时更新状态。需注意将事件绑定到容器而非子元素,并在ondragover中阻止默认行为以确保drop触发。
如何用CSS :has()选择器快速实现悬停span显示相邻div
利用CSS的:has()伪类选择器,通过` bar:has(> baz:hover)+ qux`实现悬停内联元素时显示相邻块级容器,解决了传统相邻兄弟选择器无法跨层级匹配的局限,可用于悬停图标显示详情框等交互场景。需注意浏览器兼容性和性能优化,避免过度使用影响渲染效率。
display:block居中段落文本的响应式实现方法
通过`display:block`与`max-width`限制宽度,配合`margin:auto`使段落块水平居中并实现响应式布局;同时用CSS统一控制段落间距,避免脱离文档流,提升可读性与维护性。
JavaScript代码去重:高效避免重复编写的技巧
将重复代码中的变化点提取为参数,利用ES6模板字符串动态生成选择器,可消除重复、保持一致性。注意参数安全性,必要时进行白名单校验;批量化场景可扩展为数组形式;现代框架中更推荐数据驱动或组件化封装替代手动选择器。
使用容器查询单位cqw实现表单输入框相对于祖父容器百分比宽度
利用CSS容器查询单位cqw,表单输入框宽度可直接基于祖父容器计算,绕过中间包装器尺寸干扰,实现简洁响应式布局,无需硬编码或JavaScript,显著降低维护成本,提升嵌套结构下的布局灵活性。
- 热门数据榜
相关攻略
2026-07-09 07:01
2026-07-09 07:01
2026-07-09 07:01
2026-07-09 07:00
2026-07-09 07:00
2026-07-09 07:00
2026-07-09 07:00
2026-07-09 07:00
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

