Предположим, у меня была страница с несколькими формами, такая как:
<form id="A" class="jaxy" ... />
<form id="B" class="jaxy" ... />
<form id="C" class="jaxy" ... />
Затем у меня есть JQuery
$('.jaxy').live('submit', function() {
$(this).startLoadingSpinner;
$.post(this.action, $(this).serialize(), $(this).stopLoadingSpinner, "script");
return false;
});
Когда отправляется форма "jaxy", есть пост-запрос Ajaxи сервер может ответить каким-нибудь сценарием, подобным следующему:
// The code I wish I had...
// If there was an error with the form it might respond...
$(whichever_form_posted).replaceWith("<form id="B" class="jaxy" .../>")
// or if everything went well it might...
$(whichever_form_posted).empty();
alert("Everything is right with the world! Give yourself a pat on the back.");
Проблема, которую я, очевидно, испытываю, заключается в том, чтобы знать, какая форма отправила запрос на отправку в первую очередь.Посмотрим, есть ли у меня 3 возможных маршрута:
- Я могу отправить селектор DOM в параметрах POST?или
- Я мог бы запросить HTML-ответ и вставить данные ответа, НО, как показано выше, я мог бы не захотеть заменять, так что это не совсем вариант для меня.
- Мои предпочтения каким-то образом создают прототип $ .fn.function в ответе, который может быть вызван для отправляющего элемента.Это должно быть тщательно определено или уникально, чтобы любые последующие представления формы не переопределяли функцию.
Я действительно изо всех сил пытаюсь найти способ обойти это, и я был бы признателен за любые мысли по этому поводу.,Это не обязательно актуально, но я использую это в среде RoR, и запрос POST является ответом .js на действие контроллера RESTful.Еще вопрос jQuery, который мне кажется RoR.
С уважением,
Кевин.