javascript - 如何使用 Jquery 的 AJAX 提交复杂的表单?

标签 javascript jquery ajax

我正在尝试使用 Jquery 的 ajax 提交表单。它有一些文本框、一些复选框和多个选项的下拉列表(即可以选择多个选项)。

这里有人告诉我,我可以使用以下方法获取所有选中复选框的值

$("input:checkbox[name=type]:checked")

然后我可以遍历上述代码返回的所有值,将它们分配给这样的数组:

var types=new Array();

    $.each(cboxes, function()
      {
         types[types.length]=$(this).val();
      }
    );

并尝试使用此提交表单:

var someField=$("#someField").val();
var someField2=$("#someField2").val();
var data={field1 : someField, field2=someField2, s_types:types};
$.post("signup.php?type=p",types);

但这不起作用,特别是复选框没有正确提交。我怎样才能让它发挥作用?

最佳答案

不必遍历每个字段来获取表单值。 jQuery 有一种方法可以将表单输入序列化为查询字符串。你可以这样做:

$.ajax({
  url: "mybackend.php",
  data: $("#myForm").serialize(),
  success: function(e) { // do something on success },
  error: function(e) { // do something on error }
});

请记住,javascript 帖子始终以 UTF-8 格式发送数据,因此如果您打算发送带有国际字符的文本,请确保您在后端期望这样做。

关于javascript - 如何使用 Jquery 的 AJAX 提交复杂的表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/590214/

相关文章:

javascript - 测试某物是否是 javascript 中的类

javascript - 使用 Express 响应服务器端渲染 - 客户端校验和和样式警告

javascript - 在设定的时间后运行函数

jquery - Bottle Py : Enabling CORS for jQuery AJAX requests

javascript - Ajax 用响应替换 html 但在加载 css、js 后加载内容

jquery - protractor : How to reach the second href?

javascript - $.ajax beforeSend 不等待其他ajax请求

javascript - 如何在 javascript 中对传入的 websocket 事件进行排队以执行缓慢?

javascript - 在 jade 中用 nodejs 发送处理变量

javascript - 如何在ajax进程完成之前创建延迟?