Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Popup форма. Запуск функции по "onsubmit". (https://javascript.ru/forum/dom-window/7640-popup-forma-zapusk-funkcii-po-onsubmit.html)

Tikhonov 12.02.2010 13:36

Popup форма. Запуск функции по "onsubmit".
 
Здравствуйте. У меня такой вопрос:

Есть всплывающее окно - закрывается при нажатии вне его. Внутри данного окна форма обратной связи. И все бы прекрасно, если бы не то, что функция (onsubmit="") формы не срабатывает. По причине того, что при клике на форму, я сделал остановку событий для предотвращения закрытия всплывающего окна. Как быть в данной ситуации?

<div id="popupBase" style="display:none;">
	<div id="popup">
		<form method="post" onsubmit="return sendMsg(this);">
			...	
		</form>
	</div>
</div>
<a href="#" id="start">Start</a>


<script type="text/javascript" >
		document.getElementById('start').onclick = function(){document.getElementById('popupBase').style.display = 'block';}
		document.getElementById('popupBase').onclick = function(){document.getElementById('popupBase').style.display = 'none';}
		document.getElementById('popup').onclick = function(e)
		{
			if (!e) e = event || window.event; 
			{ e.cancelBubble = true; if (e.preventDefault) e.preventDefault();}
		}
</script>

cooli0 18.02.2010 19:04

Отправляйте данные аяксом

DooMer 19.02.2010 15:44

помоему там регист имеет значение onSubmit надо

cooli0 19.02.2010 15:48

Никакого onSubmit - по стандартам все атрибуты должны быть написанно в нижнем регистре.

BorisBritva 17.03.2010 05:51

просто убери из кода вот это:

if (e.preventDefault) e.preventDefault();

а в div вставь дополнительный div.
Точнее сказать забей в форму еще один див и сделай его чуть по меньше чем основной. так у тебя получится что в облости дополнительного дива
клик не действует и форма подписывается, а в том месте где нет дополнительного дива, можно поставить крестик типо закрыть! :) я так сделал и все работает ив опере ив мозиле и в IE. Кстати спасибо за скриптик. я запарился искать. А это кокраз то что мне надо. :)

BorisBritva 17.03.2010 05:56

поправочка:

Точнее сказать окружи форму еще одним дивом.


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