2014-01-13 6 views
1

У меня есть следующий код:Каков наилучший способ добавить дополнительные данные в jQuery ajax post (в дополнение к сериализованной форме)?

$.post('/Calendar/Add', $("#calendarForm").serialize(), function (data) { 

}); 

и я хочу добавить еще один фрагмент данных в дополнение ко всем пунктам в #calendarForm.

так что позволяет сказать, что я хочу, чтобы добавить дополнительную пару ключ значение для строки запроса:

personId=223 

Я не хотел бы добавить дополнительные скрытые входы в calendarForm как это то, что я делаю сейчас, и его вид беспорядочный. Есть ли простой способ добавить дополнительную часть данных, кроме всего значения в calendarForm, когда я называю это сообщение?

Я пытался что-то вроде этого:

$.post('/Calendar/Add', $("#calendarForm").serialize() + "&personId=223", function (data) { 

}); 

но это, похоже, не работает?

+0

проверить это http://stackoverflow.com/questions/6539502/this-serialize-how-to-add-a-value – Gilberg

ответ

2

Попробуйте использовать serializeArray

var data = $('#myFormName').serializeArray(); 
data.push({name: 'myParamName', value: 'MyParamValue'}); 

Update1:

Вы можете использовать следующий код в $.post:

$.post('/Calendar/Add', data, function (data)  
{}); 

Для получения дополнительной информации имеют вид на this.

+0

и просто передать в "data" вместо "$ (" # calendarForm "). serialize() +" & personId = 223 "" ?? – leora

+1

@leora Да, это рекомендуемая идея. потому что '.serialize()' вернет строку. Преуспевать. –

+0

Мне не нужно сначала преобразовать массив данных в строку? – leora

0

вы можете сделать это, как сильфона

$.post('/Calendar/Add', { personId: 223,calendarForm: $("#calendarForm").serialize() }, 
     function (data) { }); 
Смежные вопросы