Extjs timefield

后台使用json传值时,timefield不能正确显示。重写timefield的setValue方法。

方法如下:
Ext.override(Ext.form.TimeField, { 
    getValue: function () { 
         return this.value; 
     }, 
     setValue: function (v) { 
         this.value = v; 
         this.setRawValue(this.formatValue(v)); 
         return this; 
     }, 
     formatValue: function (v) { 
         if (v.length>8) { //timefield最大不超过8个 大于8个的肯定是json中的 
             var jsondate = eval("new " + v.substr(1, v.length - 2)).toLocaleTimeString(); 
             jsondate = jsondate.length == 8 ? jsondate.substr(0, 5) : '0' + jsondate.substr(0, 4); //toLocaleTimeString比较弱智,返回的如果小时是小于10 小时位就只有1位 
             return jsondate; 
         } 
         return v; 
     } 
 });

Ext.form.TimeField 
      常用配置s项:
           maxValue:列表中允许的最大时间
           maxText:当时间大于最大值时的错误提示信息
           minValue:列表中允许的最小时间
           minText:当时间小于最小值时的错误提示信息
           increment:两个相邻选项间的时间间隔,默认为15分钟
           format:显示格式,默认为“g:i A”。一般使用“H:i:s”
                H:带前缀0的24小时
                i:带前缀0的分钟
                s:带前缀0的秒
           invalidText:当时间值非法时显示的提示信息
           altFormats:多个时间输入格式组成的字符串,不同的格式之间使用“|”进行分割

原文地址:https://www.cnblogs.com/rmsSpring/p/2185217.html