Загрузка всплывающего окна с помощью ajax
У меня есть страница JSP, которая должна загрузить всплывающее окно с помощью AJAX. Содержание страницы определяется формой, заполненной пользователем.
Что-то вроде этого:
JavaScript:
ajax('getPage.action', 'content_id', 'form_id');
foo.jsp:
<div id="content_id"></div>
<form id="form_id">
...
</form>
Java/ весна:
@RequestMapping("getPage.action")
MyController extends AbstractCommandController {
RealDto dto = (RealDto)command;
...
return new ModelAndView("foo", data);
}
Самым сложным для меня является то, как легко отправить данные формы в виде ajax-вызова. Могу ли я использовать jQuery здесь? Форма изменяется динамически, поэтому было бы весьма утомительно перечислять все поля формы.
Поможет ли использование Springs XT (которого у меня никогда не было)?
3 ответа
Да, вы можете использовать сериализацию для тривиального преобразования формы для отправки данных.
$("#form1").submit(function() {
$.get("/desiredURL", $("#form1").serialize(), function(response) {
// send response data to a popup
}
}
Вы можете использовать get или post для отправки данных.
Для всплывающего окна мне нравится Facebox, но есть множество вариантов.
Плагин jQuery-формы поможет вам легко преобразовать обычную форму в Ajax. Вам нужна только одна строка кода:
$("#myform").ajaxForm(
{beforeSubmit: validate, success: showPopup} );
Я не знаю насчет jQuery, но для прототипа это легко:
new Ajax.Request('getPage.action', {
parameters: $('form_id').serialize(true),
onSuccess: someMethod
);
Ознакомьтесь с документами по прототипам API.
Эта страница содержит ту же информацию для jQuery: http://docs.jquery.com/Ajax