У меня есть несколько форм на одной странице, которые отправляются с использованием ajaxForm и показывают прогресс загрузки. Каждая форма имеет один и тот же класс '.input_form', уникальный идентификатор и скрытое поле ввода с именем и классом 'category' с уникальным значением.
Вот оригинальный пример: http://jquery.malsup.com/form/progress.html
var bar = $('.bar');
var percent = $('.percent');
var status = $('#status');
$('.input_form').ajaxForm({
beforeSend: function() {
status.empty();
var percentVal = '0%';
bar.width(percentVal)
percent.html(percentVal);
},
uploadProgress: function(event, position, total, percentComplete) {
var percentVal = percentComplete + '%';
bar.width(percentVal)
percent.html(percentVal);
},
complete: function(xhr) {
status.html(xhr.responseText);
$('#activity_feed_load').load(querybuild());
$('.wall_cat_selected').removeClass('wall_cat_selected');
$('.input_form, .arrow').hide();
var percentVal = '0%';
bar.width(percentVal)
percent.html(percentVal);
$('.input_form').resetForm();
}
});
В полной функции я хотел бы получить идентификатор отправленной формы или значение скрытого поля в отправленной форме. Я попробовал следующее, которое не сработало.
var value = $('.input_form .category').fieldValue(); alert('The category is: ' + value[0]);
По сути, я не уверен, как получить ($ this) для отправленной формы.
Спасибо за вашу помощь!
Хорошо, я только что узнал, как это сделать, из связанного с этим вопроса SO здесь:
как использовать $ (this) в плагине jquery ajaxform
По сути, мне просто нужно добавить следующее к моей функции ajaxForm:
success: function(html, status, xhr, myForm) {
alert(myForm.attr('id'));
}
Надеюсь, это поможет кому-то еще.