Extjs4.0中的错误"this.getFullYear is not a function"解决

 这几天使用Extjs4.0中的MVC,遇到的一个问题。把问题记录下来,希望可以给大家带来帮助。

 

首先我使用的Extjs版本是4.0.2a,然后同时引用了“ext-lang-zh_CN.js”。之后我在FORM提交的时候,使用store.sync()方法将record中的参数提交到后台,代码如下:

Save: function(button){
        var win    = button.up('window'),
            form   = win.down('form'),
            record = form.getRecord(),
            values = form.getValues();
            
        if(typeof(record) != 'undefined'){
            record.set(values);
        }
        else{
            record = Ext.create('HB.model.YqInstrument');
            
            record.set(values);
            record.set('InstrumentID',0);
            
            this.getYqInstrumentsStore().add(record);
        }
        
        win.close();
        
        this.getYqInstrumentsStore().sync();
        
        record.commit();
        record.phantom=false;
    },


然后发现Extjs报错,“this.getFullYear is not a function”,一想,应该是日期控件Datefield的问题,于是到Form里看,发现Datefield显示的格式是"y年m月d日的格式",如下图:

原来是“ext-lang-zh_CN.js”的本地化文件把Datefield的值改成中文格式后,Extjs不认识它是日期对象了。所以就报错“this.getFullYear is not a function”。

 

解决方法是:

修改“ext-lang-zh_CN.js”文件中的

if(Ext.form.field.Date){
       Ext.apply(Ext.form.field.Date.prototype, {
          disabledDaysText  : "禁用",
          disabledDatesText : "禁用",
          minText           : "该输入项的日期必须在 {0} 之后",
          maxText           : "该输入项的日期必须在 {0} 之前",
          invalidText       : "{0} 是无效的日期 - 必须符合格式: {1}",
          format            : "y年m月d日"
       });
    }

if(Ext.form.field.Date){
       Ext.apply(Ext.form.field.Date.prototype, {
          disabledDaysText  : "禁用",
          disabledDatesText : "禁用",
          minText           : "该输入项的日期必须在 {0} 之后",
          maxText           : "该输入项的日期必须在 {0} 之前",
          invalidText       : "{0} 是无效的日期 - 必须符合格式: {1}",
          format            : "Y-m-d"   //    //如果datefield设置了这个,会导致报错“this.getFullYear is not a function”..
       });
    }


问题解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值