jquery序列化form表單


在開發中有時需要在js中提交form表單數據,就需要將form表單進行序列化。

jquery提供的serialize方法能夠實現。

$("#searchForm").serialize();

但是,觀察輸出的信息,發現serialize()方法做的是將表單中的數據以htpp請求格式拼接成字符串。

例如以下代碼:

    <form id="searchForm">
        <input name="id" value="123"/>
        <input name="cx" value="lklj"/>
    </form>
    <script type="text/javascript">
        console.info($("#searchForm").serialize());
    </script>

輸出結果是:id=123&cx=lklj

 

serialize確實是能夠解決一般的提交數據。但是有時我們需要的是一個object對象,而不是字符串(比如jqgrid reload時設置查詢條件參數,就需要object對象)。

所以就需要提供一個能將form轉化為對象的方法。參考自:http://www.cnblogs.com/yeminglong/p/3799282.html

(function(window, $) {
    $.fn.serializeJson = function() {
        var serializeObj = {};
        var array = this.serializeArray();
        var str = this.serialize();
        $(array).each(
                function() {
                    if (serializeObj[this.name]) {
                        if ($.isArray(serializeObj[this.name])) {
                            serializeObj[this.name].push(this.value);
                        } else {
                            serializeObj[this.name] = [
                                    serializeObj[this.name], this.value ];
                        }
                    } else {
                        serializeObj[this.name] = this.value;
                    }
                });
        return serializeObj;
    };
})(window, jQuery);

調用插件:

console.info($("#searchForm").serializeJson());

輸出結果:Object {id: "123", cx: "lklj"}

 

文章可能沒有多深或多新穎的知識點,但都是自己親手實踐,記錄自己感受與收獲。




免責聲明!

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



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