我正在尝试使用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 :(
答案 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风格的回调通常如何工作,因此你的困惑,但这就是文档所说的。