3

我将 jQuery 的提交函数绑定到表单标签。这适用于一个表单,但如果我有多个表单,它会提交 Post 变量中所有表单的数据。

我怎样才能只提交一份表格?

$('form').bind('submit',function() {
    var data = $('form').serializeAnything();
    $.post('forms/form.ajax.submit.php',data,function(response) {
        ...
});
4

4 回答 4

3

为您的表单使用 ID 并将其用于数据变量。

var data = $('#this_form').serializeAnything();

或通过查找父表单来遍历$(this).closest('form').serializeAnything();

于 2012-10-24T10:46:44.713 回答
0

而不是$('form').serializeAnything();你想要的$(this).serializeAnything();(或者,也许,$(this).serialize();如果 jQuery 的标准序列化函数可以)。

/* attach a submit handler to each form */
$('form').submit(function (event) {

    /* stop form from submitting normally */
    event.preventDefault();

    /* get some values from elements on the page: */
    var $form = $(this),
        form_data = $form.serialize(),
        url = $form.attr('action');

    /* Send the data using post */
    var posting = $.post(url, form_data);
    console.log('finished ajax post');

    /* Put the results in a div */
    posting.done(function (data) {
        console.log('now load response');
        $('#result').empty().append( $(data) );
    });
});

请参阅http://jsfiddle.net/jhfrench/QjaTq/29/ 上的工作示例

于 2013-06-24T16:28:56.247 回答
0

您可以使用选择器 id 或类来完成。

例如

var data = $( '#formID' ).serializeAnything();

var data = $( '.formCLASS' ).serializeAnything();

于 2012-10-24T10:58:36.310 回答
0
var data;
data=$('form1').serializeAnything();
data+=$('form2').serializeAnything();
data+=$('form3').serializeAnything();
于 2012-10-24T10:45:27.587 回答