我正在尝试在javascript中将项添加到数组中,然后序列化数组。但是,它似乎没有起作用。
请看下面的代码,我做错了什么?
var currentParent = $(this).closest('tr');
var items = $("input,select", currentParent);
items["_token"] = $('input[name=_token]').val();
var strData = items.serialize();
答案 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
答案 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/