分享

jquery 将json对象赋值给form表单

 yan的图书41 2017-08-25
复制代码
(function($){  
    $.fn.extend({  
        initForm:function(options){  
            //默认参数  
            var defaults = {  
                jsonValue:options,  
                isDebug:false   //是否需要调试,这个用于开发阶段,发布阶段请将设置为false,默认为false,true将会把name value打印出来  
            }  
            //设置参数  
            var setting = defaults;  
            var form = this;  
            jsonValue = setting.jsonValue;  
            //如果传入的json字符串,将转为json对象  
            if($.type(setting.jsonValue) === "string"){  
                jsonValue = $.parseJSON(jsonValue);  
            }  
            //如果传入的json对象为空,则不做任何操作  
            if(!$.isEmptyObject(jsonValue)){  
                var debugInfo = "";  
                $.each(jsonValue,function(key,value){  
                    //是否开启调试,开启将会把name value打印出来  
                    if(setting.isDebug){  
                        alert("name:"+key+"; value:"+value);  
                        debugInfo += "name:"+key+"; value:"+value+" || ";  
                    }  
                    var formField = form.find("[name='"+key+"']");  
                    if($.type(formField[0]) === "undefined"){  
                        if(setting.isDebug){  
                            alert("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 {  
                                formField.val(value);  
                            }  
                        } else if(fieldTagName == "select"){  
                            //do something special  
                            formField.val(value);  
                        } else if(fieldTagName == "textarea"){  
                            //do something special  
                            formField.val(value);
                        } else {  
                            formField.val(value);  
                        }  

                    }  
                })  
                if(setting.isDebug){  
                    alert(debugInfo);  
                }  
            }  
            return form;    //返回对象,提供链式操作  
        }  
    });
})(jQuery)  
复制代码

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多