Непонятный конфликт
Привет всем.
Пытаюсь сделать отправку формы, после появления на странице двух других скриптов, форма перестала отправляться. Пожалуйста разъясните мне почему конфликтуют эти скрипты и как этого избежать: <script> $(document).ready(function(){ $("#contactform").validate(); $.extend($.validator.messages, { required: "Поле не заполнено" }); }); function look(type){ param=document.getElementById(type); if(param.style.display == "none") param.style.display = "block"; else param.style.display = "none" } function hide(type){ param=document.getElementById(type); if(param.style.display == "none") param.style.display = "block"; else param.style.display = "none" } </script> Спасибо. |
var param=document.getElementById(type);
|
Спасибо. Но к сожалению не помогло.
|
Давайте остальное. Ну две функции, проблем не вижу, кроме той, что devote описал.
|
больше ничего нет.
Если я например вот это "$(document).ready(function(){ $("#contactform").validate(); $.extend($.validator.messages, { required: "Поле не заполнено" }); });" удаляю, все прекрасно работает, правда без валидации)) Если удаляю "function look(type){ param=document.getElementById(type); if(param.style.display == "none") param.style.display = "block"; else param.style.display = "none" } function hide(type){ param=document.getElementById(type); if(param.style.display == "none") param.style.display = "block"; else param.style.display = "none" }" То тоже все отправляется, только вод скрытые подсказки перестают работать) |
возможно конфликт в именах функций... попробуй переименовать hide и look во что нить другое.
|
Попробовал изменить, ничего не изменилось
Теперь так: <script> $(document).ready(function(){ $("#contactform").validate(); $.extend($.validator.messages, { required: "Поле не заполнено" }); }); function pokaz(type){ var param=document.getElementById(type); if(param.style.display == "none") param.style.display = "block"; else param.style.display = "none" } function skrit(type){ var param=document.getElementById(type); if(param.style.display == "none") param.style.display = "block"; else param.style.display = "none" } |
судя по всему валидатор изменяет форму/элементы над которыми он манипулирует и все ранее повешенные события теряют свою актуальность.
|
Скажите пожалуйста как поправить, второй день меня это держит, не могу доделать форму.
|
Еще раз предлагаю-написать все в сообщении. форму, валидатор, лог работы.
|
Я оставил только одно поле формы, чтобы не городить тут код необъятный.
<? //Если форма отправлена if(isset($_POST['submit'])) { //Проверка Поля Фамилия латинскими if(trim($_POST['fam']) == '') { $hasError = true; } else { $name = trim($_POST['fam']); } //Если ошибок нет, отправить email if(!isset($hasError)) { $emailTo = 'емейл адрес'; //Сюда введите Ваш email $body = "$tema"; $headers = 'Request:' ."\r\n\r\n". 'Фамилия туриста: '.$fam.''; mail($emailTo, $body, $headers); $emailSent = true; } } ?> <script src="989/jquery.min.js" type="text/javascript"></script> <script src="989/jquery.validate.pack.js" type="text/javascript"></script> <script> $(document).ready(function(){ $("#contactform").validate(); $.extend($.validator.messages, { required: "Поле не заполнено" }); }); function pokaz(type){ var param=document.getElementById(type); if(param.style.display == "none") param.style.display = "block"; else param.style.display = "none" } function skrit(type){ var param=document.getElementById(type); if(param.style.display == "none") param.style.display = "block"; else param.style.display = "none" } </script> <?php if(isset($emailSent) && $emailSent == true) { //Если письмо отправлено ?> <div id="apDiv2"> <p align="center" style="background-color: #50f52a;">Заказ на оформление успешно отправлен. Спасибо за использование автоматической формы! Мы ответим вам в кратчайшие сроки.<br /> </p><?php } ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="contactform"> <input name="fam" type="text" class="required" id="textfield5" /> </form> |
1. неверно используете плагин валидации
$(document).ready(function(){ $("#contactform").validate(); $.extend($.validator.messages, { required: "Поле не заполнено" }); }); http://jsfiddle.net/KQZ3N/1/ я добавил только кнопку отправки, свежее Jquery и свежую версия плагина. Как видите, там всё хорошо, то есть со скриптом всё в порядке. идём дальше. 2. в php в самом начале die($_POST); Если видите, что что-то отослалось с формы - ищите проблемы в php скрипте. |
Спасибо за помощь. Решил в итоге разделить на две страницы :) Проблема исчезла.
|
Часовой пояс GMT +3, время: 07:07. |