添加自定义URL参数以及$(this.form).serialize()

时间:2014-01-20 16:57:54

标签: jquery ajax forms

我正在使用此代码序列化当前提交按钮的形式。它工作正常!

data: $(this.form).serialize() // it is used in $.ajax() 

但是当我尝试添加我自己的自定义参数时

$(this.form).serialize() +'&address_serial=' + 
$('#address').val().replace(new RegExp('\n', 'g'), '<br />')

更有可能破坏代码,表单重新加载而不是保持静态并发送ajax请求。

请注意,我在代码末尾有return false,以便在点击提交时停止进一步发布表单。

如何添加自定义参数或更改textarea的当前值,以便保存每个 enter 键!

1 个答案:

答案 0 :(得分:2)

.serialize创建一个paramstring,因此,为了添加params,使用字符串连接。

var data = $("#myform").serialize() + "&" + $.param({foo: "bar"});

另外使用$.param可确保生成的字符串已正确编码。

或者,您可以使用encodeURIComponent:

$(this.form).serialize() +'&address_serial=' + encodeURIComponent($('#address').val());

而且,为了帮助调试,使用event.preventDefault()而不是return false几乎总是更好,因为如果return false发生错误,将无法访问event.preventDefault()如果你在顶部使用它会。