Javascript 是否向$form.serialize()ajax post添加其他数据?

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

下面是我序列化表单数据并通过ajax发布的代码片段。我遇到了需要添加额外数据的情况。在这种情况下,我需要添加一个逗号分隔的数组,名为“selectedHours”。这可能吗

我正在通过创建“selectedHours”,如下所示,它使用类“Hours selected”创建列表项数组。在这方面没有使用表单值、输入等

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);