Я только что столкнулся с точно такой же проблемой, и, поскольку у меня в диалоговом окне было слишком много полей, чтобы ссылаться на них по отдельности, я сделал обертку во временную форму, сериализовал ее и добавил результат в исходную форму. сериализованные данные перед выполнением вызова ajax:
function getDialogData(dialogId) {
var tempForm = document.createElement("form");
tempForm.id = "tempForm";
tempForm.innerHTML = $(dialogId).html();
document.appendChild(tempForm);
var dialogData = $("#tempForm").serialize();
document.removeChild(tempForm);
return dialogData;
}
function submitForm() {
var data = $("#MyForm").serialize();
var dialogData = getDialogData("#MyDialog");
data += "&" + dialogData;
$.ajax({
url: "MyPage.aspx",
type: "POST",
data: data,
dataType: "html",
success: function(html) {
MyCallback(html);
}
});
}