В моем веб-приложении у меня есть список редактируемых объектов, каждый со ссылкой «редактировать». Теперь, когда вы нажимаете ссылку «редактировать», появляется диалоговое окно jQuery UI и отображается форма редактирования для этого объекта. Внизу находятся кнопки «Сохранить» и «Отмена». когда нажата кнопка «сохранить», форма должна быть отправлена на сервер. Это то, что я не могу сделать.
Некоторые особенности заключаются в том, что форма редактирования загружается в диалоговое окно div через ajax при нажатии «edit» на одном из элементов списка, поэтому, возможно, это как-то связано с этим. Вот некоторые выдержки из кода приложения. Я работаю с Ruby on Rails 3.1.
Вид:
<html>
...
<body>
...
<div id="edit-campaign"></div>
<script>
$(function() {
var buttons = {
"Save": function() { $("#edit-campaign-form").submit(); },
"Cancel": function() { $("#edit-campaign").dialog("close"); }
};
createDynamicDialog("edit-campaign", buttons, "edit-campaign", "Edit Campaign");
});
</script>
</body>
</html>
Функция createDynamicDialog (в другом файле скрипта): здесь я заставляю каждую ссылку «редактировать» загружать свои формы редактирования (URL в атрибуте href) в диалоговые окна пользовательского интерфейса.
createDynamicDialog = function(divId, buttons, cls, title) {
$("." + cls).click(function(e) {
e.preventDefault();
var dialogOptions = {
title: title,
width: 800,
height: 500,
modal: true,
autoOpen: true,
buttons: buttons
};
var link = $(this);
$("#" + divId).load(link.attr('href')).dialog(dialogOptions);
});
};
При этом кнопка «отмена» работает нормально (закрытие диалога), но форма не отправляется, когда я нажимаю «сохранить». Почему это может быть? У меня есть похожий диалог, который загружается (часть ajax) при загрузке страницы, и переключается только через кнопку. Это отлично работает. Проблема только в том случае, когда загрузка формы осуществляется по событию «click». Почему?
Заранее спасибо за любую помощь, которую вы можете оказать мне. Я застрял на этом навсегда ...