jquery form.serialize和其他参数

Ken*_*avR 104 forms ajax jquery serialization

是否可以.serialize()通过单个.serialize()请求发送对象和其他参数?

例:

$.ajax({
    type : 'POST',
    url : 'url',
    data : {
        $('#form').serialize(),
        par1 : 1,
        par2 : '2',
        par3: 232
    }
}
Run Code Online (Sandbox Code Playgroud)

如果不是,那么将表单与其他参数一起提交的最佳方式是什么.

谢谢

Ror*_*san 218

serialize() 有效地将表单值转换为有效的查询字符串,因此您可以简单地附加到字符串:

$.ajax({
    type : 'POST',
    url : 'url',
    data : $('#form').serialize() + "&par1=1&par2=2&par3=232"
}
Run Code Online (Sandbox Code Playgroud)

  • @Falcon你在这里*椰子*是什么意思? (7认同)
  • @Shafizadeh它的押韵(很多 - 椰子) (3认同)

小智 71

或者,如果将params存储在某个对象变量中,则可以将form.serialize()与$ .param(object)一起使用.用法是:

var data = form.serialize() + '&' + $.param(object)
Run Code Online (Sandbox Code Playgroud)

有关更多参考,请参见http://api.jquery.com/jQuery.param.

  • 我喜欢这一个.这意味着我不必看一个丑陋的查询字符串! (10认同)
  • 到目前为止,这是更好的方法.接受的答案是凌乱的,不应该在任何生产应用程序中使用. (4认同)
  • 如果我们谈论的是生产环境,那么就不应该使用这些答案.`form`应包含所有信息(如果需要,在隐藏字段中),以便可以在一次调用中序列化.这样,如果JS被禁用或失败,表单提交仍应具有故障保护并在发送时包含所有数据. (3认同)

Roh*_*ora 8

我不知道,但以上都没有为我工作,然后我使用它,它工作:

在表单的序列化数组中,它存储为键值对

我们在表单变量中推送了一个或多个新值,然后我们可以直接传递这个变量.

var form = $('form.sigPad').serializeArray();
var uniquekey = {
      name: "uniquekey",
      value: $('#UniqueKey').val()
};
form.push(uniquekey);
Run Code Online (Sandbox Code Playgroud)


430*_*836 5

如果你想用表单序列化发送数据,你可以尝试这个

var form= $("#formId");
$.ajax({
    type: form.attr('method'),
    url: form.attr('action'),
    data: form.serialize()+"&variable="+otherData,
    success: function (data) {
    var result=data;
    $('#result').attr("value",result);

    }
});
Run Code Online (Sandbox Code Playgroud)