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

时间:2011-06-09 12:04:33

标签: php jquery ajax

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

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

对此有任何见解将不胜感激!

5 个答案:

答案 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)

你读过这个吗?

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

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