我正在使用jQuery在链接上执行基于AJAX的页面重新加载 - 它们打开“Loading ...”div窗口,然后在内容返回并加载内容时关闭它。这完全符合预期。
我的项目中有几种不同的表单,我想使用相同的方法提交 - 在提交时调出一个“Loading ...”div窗口,然后在内容返回时关闭它。没有为每个表单编写自定义函数,有没有办法做到这一点?我见过的样本要求你抓取并编码每个表单字段并在ajax方法中传递它。有些表单只有几个字段,有些表单有很多字段,所以这将是一个繁琐的过程。我希望它只是抓取表单中的所有字段并在字段名称下提交它们。
对此有任何见解将不胜感激!
答案 0 :(得分:3)
看起来你正在寻找.serialize()
的内容。它基本上是jQuery的实用函数,用于编码AJAX调用或GET查询字符串的表单元素。
根据表单元素的myinput=somevalue&myotherinput=someothervalue
属性,使用它可以获得类似name
的内容。只要他们识别出格式(例如JSON数据或标量字符串之类的东西),你就可以将其放入你对服务器进行的任何调用中。
答案 1 :(得分:2)
实际上很容易,你可以这样做:
$('form').serialize();
显然你想发送你的表单,但是如果你在选择表单标签后调用serialize,它会为你序列化表单。然后,您可以在ajax调用中使用它。
答案 2 :(得分:1)
您可以这样使用serialize()
$('#formId').serialize();
答案 3 :(得分:1)
也许有一种方法可以使用 $。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;
}
答案 4 :(得分:0)