jquery 將json對象賦值給form表單

(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)  
相關文章
相關標籤/搜索