The*_*xit 94 jquery serialization
目前我有以下内容:
$.ajax({
type: 'POST',
url: this.action,
data: $(this).serialize(),
});
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我想为数据添加一个值,所以我尝试了
$.ajax({
type: 'POST',
url: this.action,
data: $(this).serialize() + '&=NonFormValue' + NonFormValue,
});
Run Code Online (Sandbox Code Playgroud)
但这没有正确发布.关于如何将项添加到序列化字符串的任何想法?这是一个非特定于表单的全局页面变量.
Lei*_*cki 174
虽然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),
});
Run Code Online (Sandbox Code Playgroud)
mat*_*t b 93
代替
data: $(this).serialize() + '&=NonFormValue' + NonFormValue,
Run Code Online (Sandbox Code Playgroud)
你可能想要的
data: $(this).serialize() + '&NonFormValue=' + NonFormValue,
Run Code Online (Sandbox Code Playgroud)
NonFormValue如果它可能包含任何特殊字符,您应该小心对URL进行URL编码.
首先添加项目,然后序列化:
$.ajax({
type: 'POST',
url: this.action,
data: $.extend($(this), {'NonFormValue': NonFormValue}).serialize()
});
Run Code Online (Sandbox Code Playgroud)
首先不应该
data: $(this).serialize() + '&=NonFormValue' + NonFormValue,
Run Code Online (Sandbox Code Playgroud)
是
data: $(this).serialize() + '&NonFormValue=' + NonFormValue,
Run Code Online (Sandbox Code Playgroud)
其次你可以使用
url: this.action + '?NonFormValue=' + NonFormValue,
Run Code Online (Sandbox Code Playgroud)
或者如果操作已包含任何参数
url: this.action + '&NonFormValue=' + NonFormValue,
Run Code Online (Sandbox Code Playgroud)
小智 6
我们可以这样做:
data = $form.serialize() + "&foo=bar";
Run Code Online (Sandbox Code Playgroud)
例如:
var userData = localStorage.getItem("userFormSerializeData");
var userId = localStorage.getItem("userId");
$.ajax({
type: "POST",
url: postUrl,
data: $(form).serialize() + "&" + userData + "&userId=" + userId,
dataType: 'json',
success: function (response) {
//do something
}
});
Run Code Online (Sandbox Code Playgroud)
不要忘记,您可以随时这样做:
<input type="hidden" name="NonFormName" value="NonFormValue" />
Run Code Online (Sandbox Code Playgroud)
以您的实际形式显示,根据情况,这可能更适合您的代码。