jQuery - 如何动态分配表单对象

时间:2013-11-16 23:27:09

标签: jquery

我正在尝试使用单一功能在我的网站上提交各种模式的表单。我遇到的问题是在尝试序列化表单时我得到错误'form.serialize()不是函数“。我相信我已经将它缩小到我如何分配表单变量。

提交按钮:

<button id="modalSave" class="btn btn-primary" data-url="/Donors/save" data-form="#DonorAddForm" type="button">Submit</button>

提交功能:

$(".container").on("click", "#modalSave", function() {
    var form = $(this).data('form');

    $.ajax({
        url: $(this).data('url')
        dataType: "html",
        data: form.serialize(),
        beforeSend: function() {
            $("#loading").fadeIn();
        },
        success: function(data, textStatus) {
            $("#modalStatus").html(data);
        },
        complete: function() {
            $("#loading").fadeOut();
        }
    });
});

如果我改变了行:

var form = $(this).data('form');

为:

var form = $('#DonorAddForm');

然后为'form'变量分配表单对象,否则只将其指定为字符串。

如何将对象分配给'form'变量而不是字符串?

1 个答案:

答案 0 :(得分:1)

$(this).data('form')不返回DOM元素 - 它返回data-form属性的值,在本例中为字符串#DonorAddForm。要检索相应的DOM元素,请使用jQuery通过id:

获取元素
var formData = $(this).data('form'); // "#DonorAddForm"
var form = $(formData); // DOM element with id="#DonorAddForm"
相关问题