Ajax 将关联数组与表单序列化相结合
Ajax combine Associative Array with Form Serialization
我正在尝试对分布在一些javascript代码中的数据进行ajax。
目前我有一个包含我的数据的关联数组:
var AjaxSendData = {};
AjaxSendData['t_searchtext'] = searchtext;
AjaxSendData['t_numofres'] = numofres;
AjaxSendData['t_orderbydesc'] = orderbydesc;
AjaxSendData['t_columnnum'] = columnnum;
AjaxSendData['t_pagenum'] = pageNum;
AjaxSendData['t_contenttype'] = contenttype;
AjaxSendData['t_MediaFilterType'] = MediaTypeID;
AjaxSendData['t_status'] = status;
AjaxSendData['t_ResultsFilterID'] = ResultsFilterID;
AjaxSendData['t_FilterIdType'] = FilterIdType;
此外,我有一个表单,我需要使用此 id #addionalargs 进行序列化。
此表单包含多个值,包括由复选框组成的列表。 这也需要序列化。
我正在使用 Mvc,所以我希望模型绑定器仍然能够绑定值以进行验证和更干净的代码。
有谁知道如何在关联数组和表单之间组合数据?
您需要将表单序列化为 JavaScript 对象(关联数组),这不是我知道的内置函数,所以这里有一个函数。
function SerializeObject(a) {
var o = {};
$.each(a, function () {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
}
然后你需要扩展AjaxSendData:
var AddArgs = $('#yourform').serializeArray();
var AdditionalArgs = SerializeObject(AddArgs)
$.extend(AjaxSendData, AdditionalArgs);
相关文章:
- Ajax发布表单序列化,发布引号'
- 表单序列化正在发送数据
- Ajax数据表单序列化防止双重提交
- 在 jquery 表单序列化变量中设置 jquery 延迟
- Ajax 将关联数组与表单序列化相结合
- Jquery 表单序列化不适用于 Scala Play Framework 2.2 的 facebox
- 表单序列化与 ajax post
- 表单序列化问题
- 通过ajaxsetup发布带有附加参数的表单序列化数据
- 为什么表单序列化在这种情况下不起作用
- ExtJS-复杂的表单序列化
- 将表单序列化为json,不使用ajax
- jQuery表单序列化有bug,并且不一致
- 新手:检查表单初始化时是否选中了单选按钮.这个代码是什么意思
- 在PHP脚本中为联系人表单初始化javascript
- 更改表单序列化数据
- JQuery Ajax 表单序列化在第一次提交时不会给出新结果
- Ajax 表单序列化数据
- jQuery表单序列化CodeIgniter中丢失的数据
- 表单序列化在ajax post与ckeditor抛出ajax错误