您的位置:首页 > Web前端 > JavaScript

extjs时间控件,仅在选择年月时的一处小bug

2015-08-12 15:08 681 查看
在extjs中,当DateField 的format属性被设置为"Y-m" 的时候,其实缺存在一个小BUG!
       比如 :当你选6月份,并且当前系统 日期为 每 个月的29-31号时,BUG就出现了 ,不管你怎么选,文本框始终是7月,这样用户在这几天 就不能查看6月份或其他没有当前日期号数的月份都会出不来 .。。 var thetoolbar = new Ext.revenue.RevToolbar({
       items : [ {xtype:"label",text:"日期:"},
                  new Ext.revenue.RevDateField({id:"analyzeDate",format:"Y-m",value:document.getElementById("jkBankAnalyzeQueryForm.month").value}),
                {text:"查询",id:'chaxun',icon:iconPath+'search.gif',handler:function(){list();}},
                {text:"取数",id:'qushu',hidden:true,icon:iconPath+'import.png',handler:function(){fetch(); }},
                {text:"上报",id:'lock',hidden:true,disabled:true,icon:iconPath+'lock.png',handler:function(){close() }},
                {text:"保存",id:'save',hidden:true, icon : iconPath + "save.gif",renderTo : Ext.get('save'),handler : function() {_submitTable( report1 );return false;} },
                {text:"进入列表",id:'into',icon:iconPath+'preview.gif',handler:function(){return_burlist() }}
                   ]
     });

  此时需要extjs的源代码(extjs下ext-all.js 或 ext-all-debug.js,具体看你引用哪个), 在extjs3.1版本中,找到      "y = Ext.num(y, Ext.num(def.y, dt.getFullYear()));",
                                                 "m = Ext.num(m, Ext.num(def.m - 1, dt.getMonth()));",
                                                 "d = Ext.num(d, Ext.num(def.d, dt.getDate()));", 修改为                               "y = Ext.num(y, Ext.num(def.y, dt.getFullYear()));",
                                                "m = Ext.num(m, Ext.num(def.m - 1, dt.getMonth()));",
                                                "d = Ext.num(d, Ext.num(def.d, 1));"即可(默认部位当前日期,而是1号)   其他版本原理一样,修改如下    var code = "Date." + funcName + " = function(input){\n"
            + "var y, m, d, h = 0, i = 0, s = 0, ms = 0, o, z, u, v;\n"
            + "input = String(input);\n"
            + "d = new Date();\n"
            + "y = d.getFullYear();\n"
            + "m = d.getMonth();\n"
           + "d = 1;\n"                  //原代码 + "d = d.getDay();\n"
            + "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n"
            + "if (results && results.length > 0) {";  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: