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)  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM