Вот код, который я использовал в последнем вопросе , минус комментарии:
$(function() {
$('#add_customer_form').submit(function() {
var data = $(this).serialize();
var url = $(this).attr('action');
var method = $(this).attr('method');
$.ajax({
url: url,
type: method,
data: data,
dataType: 'json',
success: function(data) {
var $div = $('<div>').attr('id', 'message').html(data.message);
if(data.success == 0) {
$div.addClass('error');
} else {
$div.addClass('success');
}
$('body').append($div);
}
});
return false;
});
});
Если я прав, то, по сути, вы спрашиваете, как заставить этот фрагмент кода работать для нескольких форм, не редактируя селектор. Это очень просто. Если у вас есть код, указанный выше, на каждой странице формы, вы можете изменить часть $('#add_customer_form')
на что-то вроде $('form.json_response')
. С помощью этого селектора мы в основном говорим jQuery «любая форма с классом json_response
должна обрабатываться с помощью этой функции отправки» - конкретный класс, который я использую, здесь не важен, дело в том, что вы используете класс и передаете его все формы, которые должны иметь функциональность. Помните, jQuery работает с наборами объектов. То, как я изначально это делал, набор оказался 1 элементом, но каждая функция jQuery предназначена для воздействия на столько элементов, сколько ей нужно. Таким образом, всякий раз, когда вы создаете форму, которую хотите обработать с помощью AJAX (и вы знаете, что сервер вернет ответ JSON с индикатором успеха), вы можете просто добавить любой класс, который вы выберете, и код jQuery возьмет на себя и обработает его вы.
Существует также плагин для очистки , который вроде этого делает это, но выше тоже хорошо.