Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.08.2016, 15:25
Аватар для fenix_63
Аспирант
Отправить личное сообщение для fenix_63 Посмотреть профиль Найти все сообщения от fenix_63
 
Регистрация: 05.06.2014
Сообщений: 92

Конфликтов с jQuery нет, консоль смотрел. Но скрипт не выполняет даже alert(1). Похоже что submit не происходит. Сейчас попробую button добавить type="submit", да и форме method="post".

Похоже я чего то не понимаю, но раньше делал примерно также - всё нормально отправлялось, и без перезагрузки страницы.
Ответить с цитированием
  #12 (permalink)  
Старый 24.08.2016, 15:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от fenix_63
Похоже что submit не происходит.
Если бы события не было, то форма не отправлялась бы, а страница бы не перегружалась.

Проблема в jQ, у вас версия 3.1.0, а она может быть разной сборки, да Ajax в ней может и отсутствовать. Заремируйте ее подключение и подключите другую версию, например:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

Проверьте отправку запроса.
Ответить с цитированием
  #13 (permalink)  
Старый 24.08.2016, 15:49
Аватар для fenix_63
Аспирант
Отправить личное сообщение для fenix_63 Посмотреть профиль Найти все сообщения от fenix_63
 
Регистрация: 05.06.2014
Сообщений: 92

Не помогло. Но помог вот этот способ, собственно откуда я изначально пример и брал: http://blog.ox2.ru/php/ajax-form/
Ответить с цитированием
  #14 (permalink)  
Старый 24.08.2016, 16:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну если такими костылями решать проблемы, то зачем в этом случае jQuery нужен?
Ответить с цитированием
  #15 (permalink)  
Старый 24.08.2016, 16:22
Аватар для fenix_63
Аспирант
Отправить личное сообщение для fenix_63 Посмотреть профиль Найти все сообщения от fenix_63
 
Регистрация: 05.06.2014
Сообщений: 92

нуу не знаю, мне главное чтоб работало.
Ответить с цитированием
  #16 (permalink)  
Старый 24.08.2016, 16:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от fenix_63
мне главное чтоб работало.
Если это считать работой, то что же тогда есть не работа?

Сначала нужно убрать причину ошибок, две простые, это подключение файлов, которых нет на сервере. Связанны с js, это посложнее.

Ну и выяснить баги с jQ, иначе от него толку не будет. Например вот такое будет работать?

jQuery(document).ready(function(){
    alert(1)
});
Ответить с цитированием
  #17 (permalink)  
Старый 25.08.2016, 09:00
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

fenix_63, зачем мозг выносишь? Отгружай форму через объект после проверок на клиенте.

x.open(this.method||'post',this.action||location.href);
x.onreadystatechange = onload;
x.setRequestHeader("X-Requested-With","XMLHttpRequest");
x.send(new FormData(this)); /* вот соль */
Ответить с цитированием
  #18 (permalink)  
Старый 25.08.2016, 11:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

fenix_63,
из-за кучи ошибок в консоли я вчера поленился все просмотреть, а форм то оказывается две, и поведение второй указывает на то, что формы на страницу что-то добавляет динамически. А значит то, что писал вчера и не будет работать.

И если использовать функцию AjaxFormRequest(), то лучше это сделать так:

<form id="order_form" class="form text-top" onsubmit="yaCounter39237950.reachGoal('order_form' , function () {alert('Заявка отправлена!');}"

Зачем этои и зачем здесь разбирайтесь, alert('Заявка отправлена!') по крайней мере здесь точно лишнее. Но если так:

onsubmit="return AjaxFormRequest(this)", а в функции:

function AjaxFormRequest(f) {
                jQuery.ajax({
                    url:     'order.php', //Адрес подгружаемой страницы
                    type:     "POST", //Тип запроса
                    dataType: "text", //Тип данных
                    data: jQuery(f).serialize(), 
                    success: function(response) { //Если все нормально
                    	alert("Сообщение отправлено!");
                },
                error: function(response) { //Если ошибка
                	alert('Error!');
                }
             });
            return false
        }


то отправка формы естественным путем будет отменена.

jQuery("#order_form").serialize() - так не получится, всегда будут отправляться данные первой формы, хотя отправляться будет вторая - id должно быть уникальным, а у вас они одинаковы у обеих форм.

И добавьте хотя бы атрибут required полям формы, иначе ее свободно и пустую отправить можно, а код проверки данных на сервере изменить, иначе все это халтура. Ошибки заполнения формы сервер должен возвращать клиенту, то есть не

success: function(response) { //Если все нормально alert("Сообщение отправлено!");

а диалог.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ajax и отправка файлов с формы miker059 jQuery 5 10.01.2018 03:12
Отправка формы при каждом обновлении страницы Ingener Общие вопросы Javascript 0 25.03.2016 19:26
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
Отправка формы с помощью XMLHttpRequest2 и FormData pav jQuery 3 05.10.2011 10:16
в модальном окне не работает скрипт проверки формы necroms jQuery 1 11.03.2011 15:14