zoukankan      html  css  js  c++  java
  • 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)  
  • 相关阅读:
    P2604 [ZJOI2010]网络扩容
    P2053 [SCOI2007]修车
    P2045 方格取数加强版
    P4134 [BJOI2012]连连看
    P2153 [SDOI2009]晨跑
    P3381 【模板】最小费用最大流
    P3376 【模板】网络最大流
    P1326 足球
    2020牛客多校第八场I题 Interesting Computer Game(并查集+判环)
    Codeforces 1375D Replace by MEX(思维题)
  • 原文地址:https://www.cnblogs.com/cutone/p/7126094.html
Copyright © 2011-2022 走看看