Jquery Ajax beforeSubmit

时间:2010-11-29 07:05:26

标签: jquery ajax forms

我正在尝试使用Ajax表单提交。在BeforeSubmit函数中。我想获得提交的表单的ID。

function StatusComments() {

    $('.status-comment').submit(function() {
        $(this).ajaxSubmit(options);
        return false;
    });

    //$('.status-comment').ajaxForm(options);


    var options = {
        beforeSubmit: showRequest,
        success: showResponse,
        resetForm: true
    };

    function showRequest(formData, jqForm, options) {
        var formID = $(this).attr("id");
        alert(formID);
        $('.comment'+formID).attr('disabled', true);

    }

    function showResponse(responseText, statusText, xhr, form) {
        var formID = form.attr('id');
        $("#commentbox-"+formID).before(responseText);
    }

}

但我在showRequest中得到未定义的formID :(

1 个答案:

答案 0 :(得分:4)

The documentation for the plug-in表示表单实例将在您的jqForm参数中(并且已经是jQuery实例),而不是this。所以:

function showRequest(formData, jqForm, options) {
    var formID = jqForm.attr("id"); // <== Change on this line
    alert(formID);
    $('.comment'+formID).attr('disabled', true);
}

这不是jQuery风格的回调通常如何工作,因此你的困惑,但这就是文档所说的。