Javascript 是否向$form.serialize()ajax post添加其他数据?
下面是我序列化表单数据并通过ajax发布的代码片段。我遇到了需要添加额外数据的情况。在这种情况下,我需要添加一个逗号分隔的数组,名为“selectedHours”。这可能吗 我正在通过创建“selectedHours”,如下所示,它使用类“Hours selected”创建列表项数组。在这方面没有使用表单值、输入等Javascript 是否向$form.serialize()ajax post添加其他数据?,javascript,jquery,ajax,serialization,Javascript,Jquery,Ajax,Serialization,下面是我序列化表单数据并通过ajax发布的代码片段。我遇到了需要添加额外数据的情况。在这种情况下,我需要添加一个逗号分隔的数组,名为“selectedHours”。这可能吗 我正在通过创建“selectedHours”,如下所示,它使用类“Hours selected”创建列表项数组。在这方面没有使用表单值、输入等 var selectedHours = []; $('.hour-selected').each(function(k,v) { selectedHours.push($(v
var selectedHours = [];
$('.hour-selected').each(function(k,v) {
selectedHours.push($(v).text());
});
$.ajax({
type: 'post',
url: '/process/somepage.php',
data: $form.serialize(),
dataType : 'json'
}).done(function (response) {
... and so on...
试试这个:
$.ajax({
type: 'post',
url: '/process/somepage.php',
data: $form.serialize() + '&hours=' + JSON.stringify(selectedHours),
dataType : 'json'
}).done(function (response) {
... and so on...
发送的数据只是一个URL编码的字符串。您可以通过简单的连接附加其他值。可能更好的解决方案是使用jQuery的
serializeArray
,建议如下:
此解决方案可能更可取,因为它避免了手动构造序列化数据字符串,而选择将数据传递给jQuery来处理。我不知道它这么简单。。。通过ajax又学到了一件事。。。谢谢是否需要JSON.stringify?例如,selectedHours已返回下午1点、下午4点和晚上11点。很高兴帮助您:)@user756659
var data = $form.serializeArray();
data.push({name: 'hours', value: selectedHours});
$.post('/process/somepage.php', data).done(doSomething);