有没有办法使用jQuery提交表单而没有精心设计的字段按字段细分?

我正在使用jQuery在链接上执行基于AJAX的页面重新加载 – 它们调出“Loading …”div窗口,然后在内容返回并加载内容时关闭它。 这完全符合预期。

我在项目中有几种不同的forms,我想使用相同的方法提交 – 在提交时打开一个“正在加载…”div窗口,然后在内容返回时关闭它。 没有为每个表单编写自定义函数,有没有办法做到这一点? 我见过的样本要求你抓取并编码每个表单字段并在ajax方法中传递它。 有些表单只有少数字段,有些表单有很多字段,所以这将是一个繁琐的过程。 我希望它只是抓取表单中的所有字段并在字段名称下提交它们。

任何有关这方面的见解将不胜感激!

看起来你正在寻找类似.serialize() 。 它基本上是jQuery的实用程序函数,用于编码AJAX调用或GET查询字符串的表单元素。

使用它可以根据表单元素的name属性获得看起来像myinput=somevalue&myotherinput=someothervalue的内容。 只要他们识别出格式(例如JSON数据或标量字符串之类的东西),您就可以将其放入对服务器进行的任何调用中。

实际上很简单,你可以这样做:

 $('form').serialize(); 

显然你想发送你的表单,但是如果你在选择表单标签后调用serialize,它会为你序列化表单。 然后,您可以在ajax调用中使用它。

你可以用这种方式使用serialize()

 $('#formId').serialize(); 

也许有一种方法可以使用$ .serialize()函数。 您可以编写一个在提交表单时执行的函数。 例如,如果您有三个带有id“form1”,“form2”和“form3”的表单:

 $(document).ready(function() { $('#form1, #form2, #form3').submit(sendData); }); function sendData() { var dataString=$(this).serialize(); $.ajax({ url: "url_to_send.php", data: dataString }); return false; } 

你读过这个吗?

http://api.jquery.com/jQuery.post/

 $.post("test.php", $("#testform").serialize());