Jump to content
  • Sign Up
  • 0

Запутался с Яваскриптом


Pinga

Question

Верстаю сайт для смартфонов.
Запутался с "обратной связью".

часть common.js:

 $.ajax({                url: 'contact_form/contact_process.php',                type: 'POST',                data: str            })             .done(function(msg){                if(msg === "OK"){                    var result = "<div = 'bg-success'>Спасибо за заявку! Мы вам перезвоним!</div>"                    form.html(result);                }else{                    form.html(msg);                }            })            .always(function(){                submitBtn.removeAttr('disabled');            });

 Форма работает - письма приходят. Но после нажатия на кнопку, после обработки запроса и получения "ОК" Форма куда то исчезает, а атрибут disabled не снимается.

 

Адрес сайта

 

Желательно смотреть в режиме смартфона.
Edited by Pinga
Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0

У кнопки есть атрибут disabled когда он активирован на кнопку нажать нельзя. сделано для того чтобы несколько раз не нажималось пока форма отправляется на сервер и на почту. после того как пришел "ОК" от аякса у кнопки должен сниматься атрибут disable для того чтобы она становилась кликабельной.

Вот полностью мой JS файл.

(function() {      var app = {         initialize : function () {              this.setUpListeners();          },//слушаю события              setUpListeners: function () {                   $('form').on('submit', app.submitForm);                        $('form').on('keydown', 'input', app.removeError);               },          submitForm: function (e) {            e.preventDefault();  // ищу кнопку в форме                      var form = $(this),                submitBtn = form.find('button[type="submit"]');            //делаю кнопку некликабельной пока идет отправка формы            if( app.validateform(form) === false) return false;                submitBtn.attr('disabled', 'disabled');                        var str = form.serialize();    //аякс                    $.ajax({                url: 'contact_form/contact_process.php',                type: 'POST',                data: str            })   //если приходит ок от сервера должна появится строчка .. Ок приходит, форма исчезает, а вот див с надписью //не появляется.            .done(function(msg){                if(msg === "OK"){                    var result = "<div = 'bg-success'>Спасибо за заявку! Мы вам перезвоним!</div>"                    form.html(result);                }else{                    form.html(msg);                }            })// Здесь должен слететь атрибут Дисаблед у кнопки            .always(function(){                submitBtn.removeAttr('disabled');            });                    },  //валидация формы ищу инпуты в форме            validateform: function (form){            var inputs = form.find('input');                valid = true;  // подсказки тултипы которые типа выскаивают если не заполнено поле .. тут они разрушаются                      inputs.tooltip('destroy');                        $.each(inputs, function(index, val) {    //выискиваются инпуты в форме первоначально планировал чтобы тултипы выскакивали типа //'Заполните' + lable а lable брался из inputовского placeholder'a но не сообразил как это сделать// поэтому Лейбл забил просто так                      var input = $(val),                    val = input.val(),                    formGroup = input.parents('.input-group'),                    lable = formGroup.find('input').attr('placeholder'),                    textError = 'Заполните поле';   // если типа длина = 0 инпута то к инпуту добавляется клас  и выскакивает тултип                            if(val.length === 0) {                    formGroup.addClass('has-error').removeClass('has-success');                    input.tooltip({                        trigger: 'manual',                        placement: 'top',                        title: textError                    }).tooltip('show');                    valid = false                }else{                    formGroup.addClass('has-success').removeClass('has-error');                }                                                });                          return valid;        }, //тут все очищается               removeError: function (){            $(this).tooltip('destroy').parent('.input-group').removeClass('has-error');        }                 }       app.initialize(); }());
Edited by Pinga
Link to post
Share on other sites
  • 0
$.ajax({                url: 'contact_form/contact_process.php',                type: 'POST',                data: str            })             .done(function(msg){                if(msg === "OK"){                    var result = "<div = 'bg-success'>Спасибо за заявку! Мы вам перезвоним!</div>"                    form.html(result);                    submitBtn.removeAttr('disabled');                }else{                    form.html(msg);                }            })

Так снимите атрибут сразу после form.html(result); не?

Link to post
Share on other sites
  • 0

хмм ...

Точняк.

Осталась главная проблема

Почему не появляется:

var result = "<div = 'bg-success'>Спасибо за заявку! Мы вам перезвоним!</div>"
123123.gif

Форма должна исчезать на месте нее должна появится надпись

"Спасибо за заявку!"

Вот почему тольконе появляется ..

Edited by Pinga
Link to post
Share on other sites
  • 0

Снял атрибут сразу после form.html(result)

form.html(result);submitBtn.removeAttr('disabled');

Но атрибут так и остается на кнопке судя потому что после перезагрузки страницы (f5) кнопка некликабельна (хотя может она просто так в кэше сохраняется?)
 
 
Так же поменял строчку:

var result = "<div = 'bg-success'>Спасибо за заявку! Мы вам перезвоним!</div>"

на

var result = "<div class = 'bg-success'>Спасибо за заявку! Мы вам перезвоним!</div>"

'bg-success' пробовал и в таких кавычках: ""
 
Результата нет :(
 
Перезагружаю страницу (ctrl+f5) кнопка становится кликабельной.
 
1231231.gif

Попробовал:

var result = alert('Добрый день')

alert не выскакивает

Edited by Pinga
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • 7 Опрос

    You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.
  • Обсуждения

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy