首页 > 网站 > WEB开发 > 正文

jquery自动赋值插件

2024-04-27 15:08:04
字体:
来源:转载
供稿:网友
参考了网上的代码,自己又改进了一下/* * jquery 初始化form插件,传入一个json对象,为form赋值  *此插件要在文本编辑器之前引入 *<input type="hidden" name="img_url" /> *<img src="" fieldata="img_url" /> * *<input type="hidden" name="url" /> *<a href="" fieldata="url">link</a> */ (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 + "/r/n ";                    }                    //表单处理                    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)
上一篇:关于弹出层的总结

下一篇:Razer随手

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表