• jq form表单自动赋值


    (function ($) {
    $.fn.extend({
    initForm: function (options) {
    //默认参数
    var defaults = {
    formdata: "",
    isDebug: true //是否需要调试,这个用于开发阶段,发布阶段请将设置为false,默认为false,true将会把name value打印出来
    }
    //如果传入的json字符串,将转为json对象
    var tempData = "";
    if ($.type(options) === "string") {
    defaults.formdata = JSON.parse(options);
    } else {
    defaults.formdata = options;
    }
    //设置参数
    // var setting = $.extend({}, defaults, tempData);
    var setting = defaults;
    var form = this;
    formdata = setting.formdata;
     
    //如果传入的json对象为空,则不做任何操作
    if (!$.isEmptyObject(formdata)) {
    var debugInfo = "";
    $.each(formdata, function (key, value) {
    //是否开启调试,开启将会把name value打印出来
    if (setting.isDebug) {
    debugInfo += "name:" + key + "; value:" + value + " ";
    }
    //表单处理
    var formField = form.find("[name='" + key + "']");
    if ($.type(formField[0]) === "undefined") {
    if (setting.isDebug) {
    console.warn("can not find name:[" + key + "] in form!!!"); //没找到指定name的表单
    }
    } else {
    var fieldTagName = formField[0].tagName.toLowerCase();
    if (fieldTagName == "input") {
    if (formField.attr("type") == "radio") {
    $("input:radio[name='" + key + "'][value='" + value + "']").attr("checked", "checked");
    } else if (formField.attr("type") == "checkbox") {
    $("input:checkbox[name='" + key + "'][value='" + value + "']").attr("checked", "checked");
    } else {
    formField.val(value);
    }
    } else if (fieldTagName == "label") {
    formField.html(value);
    } else {
    formField.val(value);
    }
    }
    //图片链接处理form.find("img[fieldata=img_url]")
    var formImage = form.find("img[fieldata=" + key + "]");
    if ($.type(formImage[0]) != "undefined") {
    formImage.attr("src", value);
    }
    //a链接处理
    var formLink = form.find("a[fieldata=" + key + "]");
    if ($.type(formLink[0]) != "undefined") {
    formLink.attr("href", value);
    }
    })
    if (setting.isDebug) {
    console.log(debugInfo);
    }
    }
    return form; //返回对象,提供链式操作
    }
    });
    })(jQuery)
  • 相关阅读:
    .net知识和学习方法系列(二十)CLR委托
    Asp.net用户管理API的应用(上)
    .net知识和学习方法系列(十七)CLRCLR中的值类型和引用类型
    .net知识和学习方法系列(十九)CLR事件
    Internet Explorer 8 Beta2 常见问题解答
    关于设计模式
    Extjs中ComboBox加载并赋初值
    WPF获取窗体元素
    Extjs使用extend(js继承)
    Extjs解决上传图片预览
  • 原文地址:https://www.cnblogs.com/liuq1991/p/7911319.html
Copyright © 2020-2023  润新知