将项添加到数组,然后序列化()javascript

时间:2015-07-01 08:35:20

标签: javascript jquery arrays

我正在尝试在javascript中将项添加到数组中,然后序列化数组。但是,它似乎没有起作用。

请看下面的代码,我做错了什么?

var currentParent = $(this).closest('tr');
var items = $("input,select", currentParent);
items["_token"] = $('input[name=_token]').val();
var strData = items.serialize();

2 个答案:

答案 0 :(得分:2)

方法serialize需要应用于整个表单,而不是数组中的特定项目,如果要序列化现有对象或数组,则需要使用param

http://api.jquery.com/jquery.param/

举个例子:

<form action="">
   <input class="token" name="token" value="someValue" />
   <input class="someData" name="someData" />
</form>

<script>
    alert($('form').serialize()) // should show you someData=&token=someValue
</script>

https://jsfiddle.net/4cxa36vp/

......或......

var options = {
    token : $('input.token').val(),
    someData : null
}

alert($.param(options)) // should give you the same

https://jsfiddle.net/0ec8axot/

另外,请确保您的表单字段具有属性name

Serialize form not working in jQuery

答案 1 :(得分:-1)

尝试以下javscript代码段。我没试过,但我认为它可能有用:

var currentParent = $(this).closest('tr');
var items = $(currentParent).find("input, select");
items["_token"] = $('input[name=_token]').val();
var strData = items.serialize();

请参阅以下小提琴链接: https://jsfiddle.net/nanncngr/

相关问题