zoukankan      html  css  js  c++  java
  • Easyui使用记录

    我没有很长JS该。通常让兄弟们去获得,但是我遇到了几天Easyui的timespinner使用问题,节能控制值之后动态加载数据,日期部分也将显示。兄弟调试了很长时间也没有发现问题。不可能,刚刚好硬着头皮,周边JS(写我们自己的)没有发现问题。我会怀疑Easyui问题。码是经过混乱了的,但无办法,仅仅有硬上,经过调试分析发现其异步载入时没有对 timespinner类型的控件做格式化处理。假设服务端来的是时间格式带日期,则会直接显示出来。

    问题找到改就easy了。记录下来,希望以后实用:

    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;
                    }
                }
            }
        };
    };


    改动就非常easy了,仅仅要让程序去调用自己扩展的格式化方法就可以,也能够在里面直接处理一下。

    当然,假设你server数据本身只回兼职。你不会遇到这种问题。


    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    noi 1944 吃糖果
    noi 6049 买书
    noi 2985 数字组合
    noi 2728 摘花生
    noi 2718 移动路线
    noi 4977 怪盗基德的滑翔翼
    noi 8780 拦截导弹
    noi 1996 登山
    NOI 动态规划题集
    图的色数
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4709132.html
Copyright © 2011-2022 走看看