在Jquery中序列化数组?

前端之家收集整理的这篇文章主要介绍了在Jquery中序列化数组?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何准备这个数组为$.ajax提交?
这里图像返回[“val1”,“val2”],但是在我使用$.param(图像)后,我得到undefined = undefined& undefined = undefined
$('#rem_images').click(function(){
         var images = new Array();
        $('.images_set_image input:checked').each(function(i){
            images[i] = $(this).val();
        });
        alert($.param(images));
        return false;

一般来说,想法是检查页面上要删除的图像,然后按钮点击循环,通过所有图像检查,并将序列化数组提交到ajax到PHP脚本.

解决方法

你没有以正确的格式传递数组到$.param.从 jQuery.param docs

If the object passed is in an Array,it must be an array of objects in the format returned by 07001.

数组应该是由名称/值对组成的对象数组.你看到undefined = undefined& undefined = undefined因为“val1”.name,“val1”.value,“val2”.name和“val2”.value都是未定义的.它应该看起来像这样:

[{name: 'name1',value: 'val1'},{name: 'name2',value: 'val2'}]

所以你可以这样构造数组(假设你的复选框有一个name属性):

$('#rem_images').click(function(){
    var images = [];
    $('.images_set_image input:checked').each(function(){
        var $this = $(this);
        images.push({name: $this.attr('name'),value: $this.val()});
    });
    alert($.param(images));
    return false;
});

尽管如此,即使是使用.map()(因为功能编程是好东西):

$('#rem_images').click(function(){
    var images = $('.images_set_image input:checked').map(function(){
        var $this = $(this);
        return {name: $this.attr('name'),value: $this.val()};
    }).get();
    alert($.param(images));
    return false;
});
原文链接:https://www.f2er.com/jquery/176348.html

猜你在找的jQuery相关文章