首页 > 代码库 > Easyui使用问题记录
Easyui使用问题记录
很久没弄JS了,一般都是让兄弟们去弄,但这几天碰到个Easyui的timespinner使用问题,控件值保存后动态加载数据时,会把日期部分也显示出来。弟兄们调试了很久没发现问题所在,没办法,只好硬着头皮上,外围的JS(我们自己写的)都没发现问题,我就怀疑是Easyui的问题,虽然其代码是经过混乱了的,但无办法,只有硬上,经过调试分析发现其异步加载时没有对 timespinner类型的控件做格式化处理,如果服务端来的是时间格式带日期,则会直接显示出来。问题找到改就容易了。记录下来,希望以后有用:
function load(_417, data) { if (!$.data(_417, "form")) { $.data(_417, "form", { options: $.extend({}, $.fn.form.defaults) }); } var opts = $.data(_417, "form").options; if (typeof data == "string") { var _418 = {}; if (opts.onBeforeLoad.call(_417, _418) == false) { return; } $.ajax({ url: data, data: _418, dataType: "json", success: function (data) { _419(data); }, error: function () { opts.onLoadError.apply(_417, arguments); } }); } else { _419(data); } function _419(data) { var form = $(_417); for (var name in data) { var val = data[name]; var rr = _41a(name, val); if (!rr.length) { var f = form.find("input[numberboxName=\"" + name + "\"]"); if (f.length) { f.numberbox("setValue", val); } else { $("input[name=\"" + name + "\"]", form).val(val); //一般的timespinner在这里进行赋值 $("textarea[name=\"" + name + "\"]", form).val(val); $("select[name=\"" + name + "\"]", form).val(val); } } _41b(name, val); } opts.onLoadSuccess.call(_417, data); _41e(_417); }; function _41a(name, val) { var rr = $(_417).find("input[name=\"" + name + "\"][type=radio], input[name=\"" + name + "\"][type=checkbox]"); rr._propAttr("checked", false); rr.each(function () { var f = $(this); if (f.val() == String(val) || $.inArray(f.val(), val) >= 0) { f._propAttr("checked", true); } }); return rr; }; //这个地方虽然可以调用客户化的setValue,但timespinner不在其列 function _41b(name, val) { var form = $(_417); debugger; var cc = ["combobox", "combotree", "combogrid", "datetimebox", "datebox", "combo"]; var c = form.find("[comboName=\"" + name + "\"]"); if (c.length) { for (var i = 0; i < cc.length; i++) { var type = cc[i]; if (c.hasClass(type + "-f")) { if (c[type]("options").multiple) { c[type]("setValues", val); } else { c[type]("setValue", val); } return; } } } }; };
修改就很简单了,只要让程序去调用自己扩展的格式化方法即可,也可以在里面直接处理一下。
当然,如果你服务器回来的数据本身就只有时间部分,是不会遇到这个问题的。
Easyui使用问题记录
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。