serialization - $(this).serialize() -- 如何添加值?

标签 serialization jquery

目前我有以下内容:

$.ajax({
    type: 'POST',
    url: this.action,
    data: $(this).serialize(),
});

这工作正常,但是我想为数据添加一个值,所以我尝试了

$.ajax({
    type: 'POST',
    url: this.action,
    data: $(this).serialize() + '&=NonFormValue' + NonFormValue,
});

但这没有正确发布。关于如何将项目添加到序列化字符串的任何想法?这是一个全局页面变量,不特定于表单。

最佳答案

虽然 matt b 的答案可行,但您还可以使用 .serializeArray() 从表单数据中获取数组,修改它,然后使用 jQuery.param() > 将其转换为 url 编码形式。这样,jQuery 就会为您处理额外数据的序列化。

var data = $(this).serializeArray(); // convert form to array
data.push({name: "NonFormValue", value: NonFormValue});
$.ajax({
    type: 'POST',
    url: this.action,
    data: $.param(data),
});

关于serialization - $(this).serialize() -- 如何添加值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29765132/

相关文章:

java - 使用开源版本的CoreNLP时无法加载OpenIE模型

javascript - 如何将事件监听器附加到 JavaScript 变量

jquery - 在悬停时对齐 datepicker div 并选择

php - 我可以在选择要上传的图像文件后触发表单操作吗?

jquery - jcrop 将透明图像变成黑色

javascript - 如何在 <li> 标签内插入图片而不改变 <li> 标签的高度?

mysql - 反序列化,再次序列化和更新值

java - 我可以用基本 GSON 代替基本对象输入/输出流吗?

c++ - 修复错误的 JSON 数据

c# - 无法序列化 session 状态。第2部分