我正在为 ajax 调用构建数据。我正在使用jquery。
我的函数(简化)如下。 我想在 vname 和 vemail 上使用 jquery serialize(),但似乎只能在表单变量上执行此操作。有没有办法用普通变量来做到这一点,或者我需要做其他事情来使这些变量对于ajax调用来说是安全的?
谢谢
function sendEmailNotify(vname, vemail, docID){
$.ajax({
type: "POST",
url: "/servlet/trainingServlet",
data: ({method: 'ajaxEmailNotify',vname: vname , vemail: vemail }),
dataType: 'json',
success: function(data){
if ( data.success != "OK" ){
alert(data.message);
}
}
});
}
最佳答案
jQuery .serialize()
函数可以在包含一个或多个表单的 jQuery 对象上调用,或者在包含一组特定的单独表单输入元素的 jQuery 对象上调用,并将返回一个包含所有这些值的 URL 参数字符串。
如果代码中的 vname
和 vemail
引用输入元素,那么您可以创建一个包含这些元素的 jQuery 对象,然后调用 .serialize()
.但是,如果它们只是值,那么您无需对它们执行任何其他操作。
作为一个半相关的注释,您不需要在传递给 data
属性的对象周围加上括号 - 我不知道这样做是否会导致问题,但因为它们在那里没有任何意义,你最好将它们删除。
关于javascript - 在没有表单的情况下序列化值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10422283/