zoukankan      html  css  js  c++  java
  • Easyui Form增加myLoad方法,使其支持二级数据对象

    $.extend($.fn.form.methods, {
    myLoad : function (jq, param) {
    return jq.each(function () {
    load(this, param);
    });

    function load(target, param) {
    if (!$.data(target, "form")) {
    $.data(target, "form", {
    options : $.extend({}, $.fn.form.defaults)
    });
    }
    var options = $.data(target, "form").options;
    if (typeof param == "string") {
    var params = {};
    if (options.onBeforeLoad.call(target, params) == false) {
    return;
    }
    $.ajax({
    url : param,
    data : params,
    dataType : "json",
    success : function (rsp) {
    loadData(rsp);
    },
    error : function () {
    options.onLoadError.apply(target, arguments);
    }
    });
    } else {
    loadData(param);
    }
    function loadData(dd) {
    var form = $(target);
    var formFields = form.find("input[name],select[name],textarea[name]");
    formFields.each(function(){
    var name = this.name;
    var value = jQuery.proxy(function(){try{return eval('this.'+name);}catch(e){return "";}},dd)();
    var rr = setNormalVal(name,value);
    if (!rr.length) {
    var f = form.find("input[numberboxName="" + name + ""]");
    if (f.length) {
    f.numberbox("setValue", value);
    } else {
    $("input[name="" + name + ""]", form).val(value);
    $("textarea[name="" + name + ""]", form).val(value);
    $("select[name="" + name + ""]", form).val(value);
    }
    }
    setPlugsVal(name,value);
    });
    options.onLoadSuccess.call(target, dd);
    $(target).form("validate");
    };
    function setNormalVal(key, val) {
    var rr = $(target).find("input[name="" + key + ""][type=radio], input[name="" + key + ""][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;
    };
    function setPlugsVal(key, val) {
    var form = $(target);
    var cc = ["combobox", "combotree", "combogrid", "datetimebox", "datebox", "combo"];
    var c = form.find("[comboName="" + key + ""]");
    if (c.length) {
    for (var i = 0; i < cc.length; i++) {
    var combo = cc[i];
    if (c.hasClass(combo + "-f")) {
    if (c[combo]("options").multiple) {
    c[combo]("setValues", val);
    } else {
    c[combo]("setValue", val);
    }
    return;
    }
    }
    }
    };
    };
    }
    });

  • 相关阅读:
    架构-LAMP特级学习(网站加速解决方案)
    架构-LAMP特级学习(网站大存储量解决方案)
    架构-LAMP特级学习(网站大访问量解决方案)
    Shell-学习笔记
    算法-随手写的冒泡排序
    算法-随手写的二分查找
    cocos2dx 3.x ccPositionTextureColor_vert与ccPositionTextureColor_noMVP_vert
    cocos2dx当节点存在缩放时要注意的问题
    cocos2dx 3.x draw debug
    cocos2dx 3.x ccDrawLine一个坑
  • 原文地址:https://www.cnblogs.com/huangf714/p/5898836.html
Copyright © 2011-2022 走看看