js 序列化表单form为对象

form 表单:
 

<form id="param_form">
    <input type="hidden" name="search_key" value="{{ cd.search_key }}">
    <input type="hidden" name="search_price_gte" id="money_start" value="{{ cd.search_price_gte|default_if_none:'' }}">
    <input type="hidden" name="search_price_lte" id="money_end" value="{{ cd.search_price_lte|default_if_none:'' }}">
    <input type="hidden" id="rarity_id" name="search_rarity_id" value="{{ cd.search_rarity_id|default_if_none:'' }}"/>
    <input type="hidden" id="exterior_id" name="search_exterior_id" value="{{ cd.search_exterior_id|default_if_none:'' }}"/>
    <input type="hidden" id="sort_key" name="search_sort_key" value="{{ cd.search_sort_key|default_if_none:1 }}"/>
    <input type="hidden" id="sort_rule" name="search_sort_rule" value="{{ cd.search_sort_rule|default_if_none:1 }}"/>
    <input type="hidden" id="is_stattrak" name="search_is_stattrak" value="{{ cd.search_is_stattrak|default_if_none:'' }}">
    <input type="hidden" id="is_sticker" name="search_is_sticker" value="{{ cd.search_is_sticker|default_if_none:'' }}">
    <input type="hidden" id="search_product_id" name="search_product_id" value="{{ cd.search_product_id|default_if_none:'' }}">
    <input type="hidden" id="page_no" name="search_page_no" value="{{ cd.search_page_no }}"/>
</form>

serializeObject()方法封装:

$.fn.serializeObject = function () {
        var o = {};
        var a = this.serializeArray();
        $.each(a,
                function () {
                    if (o[this.name] !== undefined) {
                        if (!o[this.name].push) {
                            o[this.name] = [o[this.name]];
                        }
                        o[this.name].push(this.value || '');
                    } else {
                        o[this.name] = this.value || '';
                    }
                });
        return o;
    };

使用 并实现跳转:

var url_param = $('#param_form').serializeObject();
function genUrl(url, params) {
        var new_params = {}
        for (var key in params) {
            if (params[key]) {
                new_params[key] = params[key]
            }
        }
        return url + '?' + $.param(new_params)
    }
window.location = genUrl(window.location.href.split('?')[0], url_param);

总结: 以后遇到多条件查询问题 可以将参数封装在一个隐藏的表单中 最后提交

转载于:https://my.oschina.net/jamescasta/blog/994709

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值