Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Модальное окошко (https://javascript.ru/forum/events/33712-modalnoe-okoshko.html)

ponomarchik 05.12.2012 05:19

Модальное окошко
 
Доброго времени суток!

Суть задачи такова:
Есть форма:
<form name="nameForm" action="nameAction" method="POST">
...
<input type="submit" name="nameButton" value="valueButton" id="idButton" />
<div id="modal"></div>
</form>

при нажатии на кнопку, форма отправляется на сервер, а управление данными передается программе заданной атрибутом action тега форм.

Необходимо перед этим вывести окно с соглашением
и в зависимости от выбора пользователя отправлять данные на обработку или нет.
alert, confirm, promt не подходят, так как окно будет содержать текстовое поле, радиоБатоны, кнопку...
пробовал jquery-ui не выходит.
вот мой код:
$('[name="nameForm"]').submit(function(e){
$('#modal').dialog({modal: true});
});
проблема в том, что окошко выскакивает и тут же идет submit заданный атрибут action.
Подскажите пожалуйста кто знает как решить проблему. спасибо.

danik.js 05.12.2012 06:26

Замените в форме <input type="submit"> на <input type="button"> и навесьте обработчик click на эту кнопку, в обработчике вызывайте модальное окно. А уже по клику на Согласен, или что там у вас в модальном окне, вызывыйте метод submit формы: $('[name="nameForm"]').submit();

ponomarchik 05.12.2012 08:23

$('#modal').dialog({modal: true, autoOpen: false, buttons: {
									"ok": function() {
										$('[name="nameForm"]').submit();
									},
									"cancel": function() {
										$(this).dialog('close');
									}
								}
						});
						$('#button').click(function(){
							$('#modal').dialog('open');
							});


окошко закрывается, страница перезагружается и все.
а должны пройти дальше если ок.
http://tfc.web-macter.com/shop/cart/
добавляем товар, идем в корзину, внизу далее....

danik.js 05.12.2012 09:30

Это потому что пара name/value , указанная кнопке, при вызове submit() формы не отправляется. Нужно создать input[type=hidden] с name="step_4". Серверная часть требует параметр step_4.

ponomarchik 05.12.2012 09:50

Большое спасибо!
Заработало! =)

Добавил:
<input type="hidden" name="step_4"/>


А как вы определили это?

danik.js 05.12.2012 10:16

Firefox+Firebug / аналоги (в других браузерах).


Часовой пояс GMT +3, время: 01:11.