UMIhelp

Разработка сайта на UMI.CMS => JS и AJAX => Тема начата: AllaVK от 02 Ноября 2011, 17:14:40

Название: В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 02 Ноября 2011, 17:14:40
Добрый вечер!
может кто сталкивался с подобной ситуацией и сможет что-нибудь подсказать....
во всех основных браузерах (хром, опера, мозилла, сафари) у меня все работает правильно, ошибок не выдает...

а в IE7-IE9 (более старые не проверяла) возникает ошибка и не срабатывает action у формы ...
сайт: _http://gaselectro.ru_     - в правом верхнем углу ссылка "Вход", пр нажатии на нее появляется всплывающая форма для ввода логина и пароля. При нажатии на кнопку "Вход" на форме - у формы должен сработать: action="%pre_lang%/users/login_do/"   .... но ничего не происходит... форма никак не реагирует на нажатие...
Если для кнопки "Вход" напрямую прописать onclick="location.href='%pre_lang%/users/login_do/';"   то все срабатывает, пользователь входит на сайт...
При этом в режиме разработчика (дебажила в IE8) показывается ошибка:
  Объект не поддерживает это свойство или метод         _gaselectro.ru_, строка 48 символ 52
в этой строке содержится вызов функции для затемнения экрана и появления всплывающего окна... хотя при дебаге эта функция выполняется....
Подскажите, пожалуйста, в чем у меня может быть ошибка и что я делаю не так?
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 03 Ноября 2011, 08:11:50
всю голову уже сломала, может кто сталкивался с подобной ситуацией?
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 03 Ноября 2011, 10:06:36
скорее всего проблема в том что ie не нравиться работать со скрытыми формами (возможно у вас какие-то определенные условия).

В любом случае проверти работает у вас та же форма, если её не скрывать.
А затем (если она будет работать) проверти, будет ли она работать если она будет появляться не через popup механизм, а просто добавлением или убиранием style="display:none;"?  Так как возможно проблема именно в pop-up механизме. Он копирует всю форму в контейнер с id="popup" и возможно это сбивает action у формы.
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 03 Ноября 2011, 10:10:39
покопался еще немного на буржуйских сайтов, многие жалуются что js назначение action для form в ie дело хлопотное. Возможно, pop-up скрипт при перемещении формы назначает action одним из вариантов, которые не поддерживаются ie, тогда надо менять popup эффект или использовать другую библиотеку. Благодаря чему у вас работает pop-up эффект?
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 03 Ноября 2011, 10:13:18
В любом случае проверти работает у вас та же форма, если её не скрывать.

проверила - работает...
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 03 Ноября 2011, 10:16:52
Благодаря чему у вас работает pop-up эффект?

немного модифицировала решение по этой ссылке:  http://habrahabr.ru/blogs/jquery/57466/

также пыталась воспользоваться вот этим решением: http://wiki.umisoft.ru/%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%84%D0%BE%D1%80%D0%BC%D1%8B_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%BE%D0%B9_%D1%81%D0%B2%D1%8F%D0%B7%D0%B8_%D0%B2_%D0%BC%D0%BE%D0%B4%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D0%BE%D0%BA%D0%BD%D0%B5
но оно у меня что-то не пошло...
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 03 Ноября 2011, 10:18:05
хорошо что отрабатывает сама форма :) ,а если её скрывать и показывать не pop-up механизмом, а через jQuery('#popup_message_register').hide(); и  jQuery('#popup_message_register').show(); либо еще как, но чтобы скрытие отображение было через свойство display:none
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 03 Ноября 2011, 10:33:43
я с jQuery пока не сильно дружусь...  :-[  это мои начинания в нем... попробую....
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 03 Ноября 2011, 10:52:35
вместо такого html
<div id="popup_message_register" class="hidden">
<div class="message_register" style="border: 4px solid #ddd; padding: 10px; background-color: #fff; margin: 0px; width: 305px;">
<form class="regstr" action="/users/login_do/" method="post" style="text-align: center;">
<h3>Вход на сайт</h3>
<label for="login" style="float: left; margin: 0 0 5px 30px; text-align: left; width: 60px; display: block;"><b>Логин:</b></label>
<input type="text" id="login" name="login" class="input" value="" style="margin: 0 30px 5px 0; width: 165px; float: right;" />
<div id="clear"></div>
<label for="password" style="float: left; margin: 0 0 5px 30px; text-align: left; width: 60px; display: block;"><b>Пароль:</b></label>
<input type="password" id="password" name="password" class="input" value="" style="margin: 0 30px 5px 0; width: 165px; float: right;" />
<div id="clear"></div>

<div class="buttons" style="text-align: center; margin: 10px;">
<input class="button" type="submit" value="Вход" style="font-weight: bold;" />
<input class="button" type="button" onclick="$('#popup_message_register').togglePopup(); return false;" value="Отмена" style="font-weight: bold;" />
<input type="hidden" name="from_page" value="/market/" style="display: none;" />
</div>
<div class="additional_links" style="margin: 10px; padding: 10px; text-align: left;">
<a href="/users/forget/" title="Напомнить пароль" class="forget_passw" style="text-decoration: underline !important; float: none !important;">Напомнить&nbsp;пароль</a>
</div>
<div id="clear"></div>
</form>
</div>
</div>

должен получиться такой
<div id="popup_message_register" style="display:none;">
<div class="message_register" style="border: 4px solid #ddd; padding: 10px; background-color: #fff; margin: 0px; width: 305px;">
<form class="regstr" action="/users/login_do/" method="post" style="text-align: center;">
<h3>Вход на сайт</h3>
<label for="login" style="float: left; margin: 0 0 5px 30px; text-align: left; width: 60px; display: block;"><b>Логин:</b></label>
<input type="text" id="login" name="login" class="input" value="" style="margin: 0 30px 5px 0; width: 165px; float: right;" />
<div id="clear"></div>
<label for="password" style="float: left; margin: 0 0 5px 30px; text-align: left; width: 60px; display: block;"><b>Пароль:</b></label>
<input type="password" id="password" name="password" class="input" value="" style="margin: 0 30px 5px 0; width: 165px; float: right;" />
<div id="clear"></div>

<div class="buttons" style="text-align: center; margin: 10px;">
<input class="button" type="submit" value="Вход" style="font-weight: bold;" />
<input class="button" type="button" onclick="$('#popup_message_register').togglePopup(); return false;" value="Отмена" style="font-weight: bold;" />
<input type="hidden" name="from_page" value="/market/" style="display: none;" />
</div>
<div class="additional_links" style="margin: 10px; padding: 10px; text-align: left;">
<a href="/users/forget/" title="Напомнить пароль" class="forget_passw" style="text-decoration: underline !important; float: none !important;">Напомнить&nbsp;пароль</a>
</div>
<div id="clear"></div>
</form>
</div>
</div>
        <a href="#" class="example_link">показать форму</a>
        <script type="text/javascript">
$(document).ready(function(){
jQuery('.example_link').click(function(){
jQuery('#popup_message_register').show();
return false;
});
});
        </script>


этого хватит чтобы проверить
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 03 Ноября 2011, 10:58:13
приведенный Вами код работает...
только мне бы все равно надо, чтобы форма ввода логина и пароля появлялась в стиле лайтбокса...
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 03 Ноября 2011, 11:06:53
ну главное понятно где проблема, в pop-up эффекте, попробуйте с fancybox сделать, что у вас не получилось в первый раз?
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 03 Ноября 2011, 11:10:41
попробуйте с fancybox сделать, что у вас не получилось в первый раз?

в теге <a> нужно прописать ссылку на форму.... я ее якорем прописала и форме назначила display: none, чтобы она раньше времени не показывалась,... и потом  во всплывающем окне fancybox она у меня так и не отобразилась ((( может я конечно что-то не так сделала... по ссылке дан пример для форм обратной связи....
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 03 Ноября 2011, 11:17:50
зачет, делаем так....

подключаете fancybox, и создаете такой блок

<a onclick="jQuery(this).fancybox(); return false;" id="inline" class="enter" title="Вход" href="#popup_message_register">Вход</a>

<div style="display:none">
         <div id="popup_message_register">
<div class="message_register" style="border: 4px solid #ddd; padding: 10px; background-color: #fff; margin: 0px; width: 305px;">
<form class="regstr" action="/users/login_do/" method="post" style="text-align: center;">
<h3>Вход на сайт</h3>
<label for="login" style="float: left; margin: 0 0 5px 30px; text-align: left; width: 60px; display: block;"><b>Логин:</b></label>
<input type="text" id="login" name="login" class="input" value="" style="margin: 0 30px 5px 0; width: 165px; float: right;" />
<div id="clear"></div>
<label for="password" style="float: left; margin: 0 0 5px 30px; text-align: left; width: 60px; display: block;"><b>Пароль:</b></label>
<input type="password" id="password" name="password" class="input" value="" style="margin: 0 30px 5px 0; width: 165px; float: right;" />
<div id="clear"></div>

<div class="buttons" style="text-align: center; margin: 10px;">
<input class="button" type="submit" value="Вход" style="font-weight: bold;" />
<input class="button" type="button" onclick="$('#popup_message_register').togglePopup(); return false;" value="Отмена" style="font-weight: bold;" />
<input type="hidden" name="from_page" value="/market/" style="display: none;" />
</div>
<div class="additional_links" style="margin: 10px; padding: 10px; text-align: left;">
<a href="/users/forget/" title="Напомнить пароль" class="forget_passw" style="text-decoration: underline !important; float: none !important;">Напомнить&nbsp;пароль</a>
</div>
<div id="clear"></div>
</form>
</div>
</div>
</div>

не забудьте стереть оригинальный контейнер с формой и оригинальную ссылку "Вход"
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 03 Ноября 2011, 11:26:02
не сработало (((( форма частями появилась в fancybox (label'ы не появились, но это я потом поищу...), но вот по нажатию кнопки Вход на форме - форма просто закрывается и action снова не срабатывает (((
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: Vladimir от 03 Ноября 2011, 13:33:05
Я так понял, что проблема решена? У меня в ИЕ8 форма переадресует на /users/login_do/
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 03 Ноября 2011, 13:42:42
Владимир, через fancybox у вас работает или вы свой какой-то способ применили?

p.s. я так еще и не успел попробовать у себя
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 03 Ноября 2011, 14:23:10
Я так понял, что проблема решена? У меня в ИЕ8 форма переадресует на /users/login_do/

нет... с помощью fancybox форма остается на месте, никуда не переадресуется (((
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: Vladimir от 03 Ноября 2011, 16:46:09
эээ. так. я захожу по адресу http://gaselectro.ru оперой. кликаю по ссылке "войти". Открывается форма на затемненном фоне. Нажимаю "вход" ничего не вводя - попадаю на /users/login_do/
То же самое в ИЕ8.
Получается, все работает
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: Vladimir от 03 Ноября 2011, 16:47:26
и в эмулированном ИЕ7 тоже самое
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 03 Ноября 2011, 17:00:57
Владимир починил все не заходя на ftp)))
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: Vladimir от 03 Ноября 2011, 17:07:54
Трижды делал подобное извращение - форма во всплывающем окне - и с ИЕ проблем не имел. Опера, вот та да, любит подкинуть сюрпиз, потому что суперреактивная и следующую операцию часто начинает не успев закончить предыдущую.
Например http://www.russianlaw.net/ внизу, или _http://test.xolodu.net/
Форма в скрытом диве, выностися на передний план по клику. Вроде, у вас все тоже самое.
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 07 Ноября 2011, 09:04:24
эээ. так. я захожу по адресу оперой. кликаю по ссылке "войти". Открывается форма на затемненном фоне. Нажимаю "вход" ничего не вводя - попадаю на /users/login_do/
То же самое в ИЕ8.
Получается, все работает

Ну я на выходные на эту форму поставила заглушку, прописав принудительно на кнопке действие - переход на /users/login_do/ ) чтоб зарегистрированные пользователи имели возможность входа на сайт.... в опере изначально проблем не было...
сейчас в ИЕ проблему с нерабочим action у формы также можно наблюдать на моем же сайте - в правом нижнем углу - всплывающие формы "Написать сообщение", они сделаны на Обратной связи тем же способом затемнения экрана. В них также не происходит переход на /webforms/send/....
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: Vladimir от 07 Ноября 2011, 09:45:18
А заглушка и сейчас стоит?  У меня опять все работает....
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 07 Ноября 2011, 09:48:40
А заглушка и сейчас стоит?  У меня опять все работает....

сейчас стоит заглушка только на "Вход" для зарегистрированных пользователей... но в правом нижнем углу страницы сайта на "Отправить сообщение" - заглушки нет, эта форма нерабочая сейчас...
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: Vladimir от 07 Ноября 2011, 09:59:22
И почему-то при в дебаггере ИЕ я вижу, что все метатеги, скрипты и стили переезжают в body.
что-то у вас в шаблоне не то. Или тег где-то незакрытый, или вложенность.. Не должно такого быть

Так и в ФФ то же самое....
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: Vladimir от 07 Ноября 2011, 10:00:07
О! А зачем у body маргин -17 ?
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 07 Ноября 2011, 10:34:49
О! А зачем у body маргин -17 ?
эт пардон, забыла убрать, уберу сейчас как освобожусь...  :-[
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 07 Ноября 2011, 15:33:48
И почему-то при в дебаггере ИЕ я вижу, что все метатеги, скрипты и стили переезжают в body.
что-то у вас в шаблоне не то. Или тег где-то незакрытый, или вложенность.. Не должно такого быть
Так и в ФФ то же самое....

это все исправила, маргин тоже ) в нескольких вспомогательных шаблонах была включена сигнатура BOM, убрала ее....
теперь все метатеги и скрипты на месте, в хеде. Но вот с формами пока глюк остался...
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: Vladimir от 07 Ноября 2011, 17:52:48
Я сейчас в ИЕ отключил исполнение скриптов. Естественно, форма появляется уже не во всплывающем окне, а в теле страницы. Но форма при этом отправляется. Может, дело в onsubmit?  и я бы написал не onsubmit="что_то_там; return true;", а onsubmit="return что-то-там"; Не помню точно, но, вроде, только первая функуия учитывается. Мне кажется. Могу ошибаться.
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 08 Ноября 2011, 08:38:21
Я вообще убрала onsubmit из этой формы, но не помогло (((
мне кажется, что дело в функции затемнения экрана и выводе поверх его формы... если выводить форму сразу, то все работает... попробую другой способ затемнения экрана и вывод формы поверх него....
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 09 Ноября 2011, 07:42:58
Алла, я сделал у себя на локалпаке вариант со всплывающей формой. Попробуйте сделать такую же у себя.

1. скачиваем fancybox с официального сайта (прямая ссылка на скачивание файлов fancybox (http://fancybox.googlecode.com/files/jquery.fancybox-1.3.4.zip)) распаковывем её кидаем на сервер (в моем случае я положил папку fancybox внутрь /js)
2. Добавляем в head , уже после подключения jquery, файлы fancybox
<script type="text/javascript" src="/js/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
<link rel="stylesheet" href="/js/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
<script type="text/javascript">
$(document).ready(function() {
$("a#inline").fancybox({
'hideOnContentClick': true
});
});
</script>
2. в шаблон вставляю скрытую форму авторизации и ссылку на её отображение
<a id="inline" href="#data">Войти</a>

<div style="display:none">
<div id="data">
<form id="auth" action="%pre_lang%/users/login_do/" method="post" style="margin-left:12px;" >
<label for="login">Логин:</label>
<input type="text" id="login" name="login" class="input" value=""/>
<label for="password">Пароль:</label>
<input type="password" id="password" name="password" class="input" value=""/>
<label>
<input type="submit" value="Вход" style="float:left;"/>
<input type="hidden" name="from_page" value="%from_page%" style="display:none;" />
</label>
<label style="position:relative; left:70px; top:8px;">
<a href="%pre_lang%/users/forget/" class="sub" style="color:#002F81;">Забыли&nbsp;пароль?</a>
</label>
<div class="clear"></div>

</form>
</div>
</div>

При нажатии на кнопку "Вход", в появившейся форме авторизации, идет перекидывание на /users/login_do/. Как вы и хотели
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 09 Ноября 2011, 08:37:27
Спасибо большое, попробую, отпишусь.
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 09 Ноября 2011, 19:23:16
ну как, пробовали?
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: Vladimir от 13 Ноября 2011, 12:00:40
Ну вот, Алла, и у меня появился вариант всплывающей регистрации __http://prosound-nn.ru/new/glavnaya2/  Содержимое окна подгружается аяксом, и в ИЕ8 вроде все отрабатывает. В следующие выходные напишу у себя на сайте подробно как делал. Если нужно срочно - пишите мне на почту, пришлю шаблоны (tpl), макрос и яваскрипт
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 16 Ноября 2011, 12:10:19
ну как, пробовали?
честно - еще нет, разгребаю срочную текущую работу, вернусь к этой чуть попозже...как попробую - сразу отпишусь....
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: AllaVK от 16 Ноября 2011, 12:14:02
Ну вот, Алла, и у меня появился вариант всплывающей регистрации __http://prosound-nn.ru/new/glavnaya2/  Содержимое окна подгружается аяксом, и в ИЕ8 вроде все отрабатывает. В следующие выходные напишу у себя на сайте подробно как делал. Если нужно срочно - пишите мне на почту, пришлю шаблоны (tpl), макрос и яваскрипт
посмотрела пример - было бы интересно узнать, как это сделано... дождусь статьи с описанием на Вашем сайте, его я тоже периодически просматриваю )
как раз может разгребусь с текущей срочной работой и попробую оба варианта: Ваш и admin'а...
спасибо большое вам обоим за помощь и подсказки.
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 16 Ноября 2011, 16:42:46
Владимир статью ждем.
Алла, попробуйте пока вариант с fancybox, там уже все расписано) интересно ведь
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: shoto от 24 Сентября 2012, 16:53:38
Владимир статью ждем.
А статья уже появилась?
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: shoto от 25 Сентября 2012, 11:52:24
Алла, я сделал у себя на локалпаке вариант со всплывающей формой. Попробуйте сделать такую же у себя.

1. скачиваем fancybox с официального сайта (прямая ссылка на скачивание файлов fancybox (http://fancybox.googlecode.com/files/jquery.fancybox-1.3.4.zip)) распаковывем её кидаем на сервер (в моем случае я положил папку fancybox внутрь /js)
2. Добавляем в head , уже после подключения jquery, файлы fancybox

2. в шаблон вставляю скрытую форму авторизации и ссылку на её отображение

При нажатии на кнопку "Вход", в появившейся форме авторизации, идет перекидывание на /users/login_do/. Как вы и хотели

Сделала как тут выше было предложено, но при клике на поле Логин форма сворачивается.
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 25 Сентября 2012, 17:58:32
как вы подключаете fancybox? скиньте js код которым вы подключаете fancybox
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: shoto от 25 Сентября 2012, 22:31:44
<script type="text/javascript" src="/js/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
<link rel="stylesheet" href="/js/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
<script type="text/javascript">
$(document).ready(function() {
$("a#inline").fancybox({
'hideOnContentClick': true
});
});
</script>

<a id="inline" href="#data">Войти</a>

<div style="display:none">
<div id="data">
<xsl:apply-templates select="/result/user" />
</div>
</div>
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 26 Сентября 2012, 00:25:23
а вас не смущает опция при подключении fancybox  'hideOnContentClick': true ? :)

посмотрите на сайте fancybox http://fancybox.net/blog пример номер пять Display login form для подключения форм через fancy
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: shoto от 26 Сентября 2012, 10:30:58
Меня наверное смущало бы, если бы это не было предложенным вариантом с примером кода:)
Название: Re:В IE7-IE9 не срабатывает action у формы
Отправлено: admin от 26 Сентября 2012, 11:32:09
эко я завернул