jQuery.ajax - 提交表单中的所有元素而不手动输入它们[重复]

Posted

技术标签:

【中文标题】jQuery.ajax - 提交表单中的所有元素而不手动输入它们[重复]【英文标题】:jQuery.ajax - submit all elements in form without manually entering them [duplicate] 【发布时间】:2010-11-16 18:47:57 【问题描述】:

我想使用 jQuery.ajax 通过 POST 提交表单,而不必在“data:”部分手动指定所有内容。

这是我不想要的:

data:   "username=" + document.getElementById("username").value + 
    "&email=" + document.getElementById("email").value,

有没有办法让它包含来自整个 FORM 字段的所有元素及其值?这个表单是动态生成的,这样可以节省我很多时间!

【问题讨论】:

【参考方案1】:

使用serialize method。

data :   $("form").serialize()

【讨论】:

别忘了给每个输入元素起个名字。 使用:input 选择器:$("#form :input").serialize() 天哪,为什么这么难找!漂亮。【参考方案2】:

看http://docs.jquery.com/Ajax/serialize。

这将构成以下示例:

$("#submit").click(function() 
    $.ajax(
        data: $("form").serialize(),
        ...rest
    );
);

【讨论】:

【参考方案3】:

使用.serialize() 方法在jQuery Ajax 中发送整个表单数据。

data:$('#formID').serialize()

可以从这里找到示例脚本 - How to send entire form data in jQuery Ajax

【讨论】:

以上是关于jQuery.ajax - 提交表单中的所有元素而不手动输入它们[重复]的主要内容,如果未能解决你的问题,请参考以下文章

jQuery AJAX 提交表单

使用 PHP、Jquery、AJAX 表单机制和数据库中的数据过滤数据

表单中的 Textarea 未使用 jQuery AJAX 通过 POST 提交

jquery ajax 表单提交被浏览器拦截解决办法

Jquery ajax提交表单几种方法详解

jQuery ajax()使用serialize()提交form数据