日期:2014-05-16 浏览次数:20494 次
大家知道Jquery中有serialize方法,可以将表单序列化为一个“&”连接的字符串,但却没有提供序列化为Json的方法。不过,我们可以写一个插件实现。
?
我在网上看到有人用替换的方法,先用serialize序列化后,将&替换成“:”、“‘”:
/** 
     * 重置form表单 
     * @param formId  form的id  
     */  
    function resetQuery(formId){  
        var fid = "#" + formId;  
        var str = $(fid).serialize();  
        //str= cardSelectDate=3&startdate=2012-02-01&enddate=2012-02-04  
        var ob= strToObj(str);  
        alert(ob.startdate);//2012-02-01  
    }  
      
    function strToObj(str){  
        str = str.replace(/&/g,"','");  
        str = str.replace(/=/g,"':'");  
        str = "({'"+str +"'})";  
        obj = eval(str);   
        return obj;  
    }  
个人感觉这样做有bug。
?
我的方法是,先用serializeArray序列化为数组,再封装为Json对象。
?
?
下面是表单:
?