javascript - 在没有表单的情况下序列化值

标签 javascript jquery

我正在为 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 参数字符串。

如果代码中的 vnamevemail 引用输入元素,那么您可以创建一个包含这些元素的 jQuery 对象,然后调用 .serialize().但是,如果它们只是值,那么您无需对它们执行任何其他操作。

作为一个半相关的注释,您不需要在传递给 data 属性的对象周围加上括号 - 我不知道这样做是否会导致问题,但因为它们在那里没有任何意义,你最好将它们删除。

关于javascript - 在没有表单的情况下序列化值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10422283/

相关文章:

javascript - 将字符串转换为 jquery 对象并从中提取数据

javascript - GO: javascript 和 html MIME 错误

JQuery UI 自动完成和 Google 关键字

javascript - 加载时无法识别 Jquery Google CDN?

asp.net - 绑定(bind)时如何禁用列表框控件中的某些项目

Javascript - 上传前的图像预览。同一页面上的多个实例需要

javascript - 设置间隔和 AJAX

javascript - 使用存储在范围变量中的数据而不是进行 ajax 调用

jQuery 如何在文本上制作卡拉 OK 效果?

javascript - Laravel 颜色选择器不工作