Extjs4.2控制combox下拉框置空

Extjs4.2控制combox下拉框置空

需求具体描述

很多同学在做Extjs4.2下拉选择表单的时候都有一个疑问,如果我们不选择此下拉选择表单的时候,提交会自动传参数为空给后台,一旦我们选择了之后,combox就有值了,而且还无法置空,这是插件本身的样子!
假如现在有一个需求,需要我们既可以选择某个下拉数据,也可以置空怎么办,在这里我提供一种思路,如果有其他更好的方法,望各路大神不吝赐教,下方留言给我,谢谢!

思路

我的思路其实很简单:

1.让下来框可以编辑,即设置属性 editable : true
2.加监听,判断combox的value是否为空,如果为空,证明这是手动输入的数据,这时候不管用户输入的其他任何的数据是什么,强制reset()操作,注:如果是下拉选择框本身已有的数据,combox的value是不为空的。
3.监听此下拉选择框的失去焦点时的事件,即:blur

具体代码

Extjs的表单定义创建那些我就不写了,直接上核心代码哦!

{
                xtype : 'combo',//引入combox
                name : 'name',//映射字段的名称
                fieldLabel : '名称',//表单名称
                labelAlign: 'right',//对齐方式
                allowBlank : true,//是否为空,true表示可以为空
                maxLength : 100,//最大长度
                width : 285,//表单宽度
                displayField : 'value',//下拉选择的时候显示的值
                valueField : 'code',//传值给后台时的值,也就是表单的值
                editable : true,//这个是此讲的重点,是否可以编辑,默认false,不可以编辑
                emptyText : "   --请选择名称--",//表单输入提示语
                store: 'Users',//下拉框数据来源store
                listeners : {//添加监听事件,可以是多个事件,所有加了s
                    blur : function (data) {//失去焦点事件
                        var me = this;//作用域
                        var value =data.value;//获取combox的value
                        if(value==null){
                            me.reset();//为空时强制清空数据,然后return
                            return;
                        }
                    }
                }
            }

其他

方式可能有很多种,有的时候还是得根据自己的需求来定,本文只是提供一种思路!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值