json对象load到表单中,这样后台Ajax过来的数据就可以直接加载

废话不多说,直接上代码,javascript的。
    /**
     * 加载json的数据到页面的表单中,以name为唯一标示符加载
     * @param {String} jsonStr json表单数据
     */
    function loadJsonDataToForm(jsonStr){
        try{
            //var obj = eval("("+jsonStr+")");
            var obj = jsonStr;
            var key,value,tagName,type,arr;
            for(x in obj){
                key = x;
                value = obj[x];

                $("[name='"+key+"'],[name='"+key+"[]']").each(function(){
                    tagName = $(this)[0].tagName;
                    type = $(this).attr('type');
                    if(tagName=='INPUT'){
                        if(type=='radio'){
                            $(this).attr('checked',$(this).val()==value);
                        }else if(type=='checkbox'){
                            arr = value.split(',');
                            for(var i =0;iif($(this).val()==arr[i]){
                                    $(this).attr('checked',true);
                                    break;
                                }
                            }
                        }else{
                            $(this).val(value);
                        }
                    }else if(tagName=='SELECT' || tagName=='TEXTAREA'){
                        $(this).val(value);
                    }

                });
            }
        }catch(e){
            alert("加载表单:"+e.message+",数据内容"+JSON.stringify(jsonStr));
        }
    }

平时我就是Ajax到后台拿数据,拿完之后直接loadJsonDataToForm(obj),相当好用。

你可能感兴趣的:(json对象load到表单中,这样后台Ajax过来的数据就可以直接加载)