Ext.ux.form.LovCombo.js在ext3.4.0下选择多个选项,当鼠标离开,已选择项目就消失了的解决办法

首先了,要先下载lovcombo 地址为http://lovcombo.extjs.eu/

extjs3.0和这个东东了有个bug,就是选择后失去焦点值会消失

修复方法,在Ext.ux.form.LovCombo.js加上beforeBlur,方法为

在Ext.ux.form.LovCombo.js的setValue前面加上

 

beforeBlur : function(){ 
    var val = this. getRawValue(); 
    if(this.forceSelection){ 
        if(val.length > 0 && val != this.emptyText){ 
           this.el.dom.value = Ext.isDefined(this.lastSelectionText) ? this.lastSelectionText : ''; 
            this.applyEmptyText(); 
        }else{ 
            this.clearValue(); 
        } 
    }else{ 
            var texts = val.split(','); 
            var values=''; 
            for(var i=0;i<texts.length;i++){ 
                    var rec = this.findRecord(this.displayField, texts[i].trim()); 
                 if(rec){ 
                        values+=(values.length>0?',':'')+rec.data[this.valueField]; 
                    } 
                } 
        this.setValue(values); 
    } 
    }

 

就可以了

html代码为

 

Ext.onReady(function(){
 Ext.QuickTips.init();
      //创建记录类型person
 var person = Ext.data.Record.create([{ 
  name: 'value', 
  mapping: 0    //数组第0个元素
 }, { 
  name: 'text', 
  mapping: 1    //数组第1个元素
 }]);

 //创建数据解析器
 var reader = new Ext.data.ArrayReader({ 
  id: 0   //必须有,数组第0个元素作为记录id
 }, person);
 
 //创建HttpProxy代理
 
var data=[[1,"one"],[2,"dfdfs"],[3,"gerge"],[4,"dfdsfsdf"]];
var proxy=new Ext.data.MemoryProxy(data);
 
 //创建数据集Store
 var ds = new Ext.data.Store({
     autoLoad: true,
     proxy: proxy,
     reader: reader
 });

 var lcc = new Ext.ux.form.LovCombo({
  renderTo :Ext.getBody(),
   name:"inzlststus",
    fieldLabel:"资材状态",
    store:ds,
    mode:'local',
    triggerAction:'all',
    hideTrigger:false,
    allowBlank:true,
    displayField:'text',
    valueField:'value',
    emptyText:'请选择资材类别',
    editable:false
 });

 
  var tf = new Ext.form.TextField({
   renderTo:Ext.getBody()
  ,id:'tf'
  ,width:300
  ,selectOnFocus:false
  ,listeners:{
   focus:function() {this.setValue(lcc.getValue());}
  }
 });
 lcc.render
 })

 

如果图片不显示修改其Ext.ux.form.LovCombo.css的图片路径

忘记了一个关键问题,要导入的css,js文件

 

<link rel="stylesheet" type="text/css" href="css/ext-all.css" />  
 <link rel="stylesheet" type="text/css" href="js/ajax/extjs/lovc/css/Ext.ux.form.LovCombo.css">

  <script type="text/javascript" src="js/ajax/extjs/ext/adapter/ext-base.js"> </script>
  <script type="text/javascript" src="js/ajax/extjs/ext/ext-all.js"> </script>
  <script type="text/javascript" src="js/ajax/extjs/lovc/js/Ext.ux.form.LovCombo.js"></script>


不要忘记前后顺序哦!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值