Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 22.09.2016, 11:52
Кандидат Javascript-наук
Отправить личное сообщение для sergofedor06 Посмотреть профиль Найти все сообщения от sergofedor06
 
Регистрация: 10.11.2015
Сообщений: 131

в итоге если человек ввел комментарий менее 30 знаков то ему не всплывает сообщение что нужно ввести более 30 знаков, и форма не работает так как кнопку переклинило и нужно перегружать страницу!
Ответить с цитированием
  #22 (permalink)  
Старый 22.09.2016, 11:58
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

sergofedor06,
а так?
$('body').on('click', "#comments_add_form input[type='submit']", function (e) {
        e.preventDefault();
        var user_name = $("#comments_add_form  #user_name");
        if (user_name.val().length >= 3) {
            var comment_text = $("#comments_add_form  #comment_text");
            if (comment_text.val().length >= 30) {
                var capcha = $("#comments_add_form #capcha");
                var anchor = $("#comments_add_form  #anchor").val();
                if (user_name.val() == "") {
                    alert("введите имя");
                } else if (comment_text.val() == "") {
                    alert("введите коментарий")
                } else {
					$('.add_comment').prop('disabled', true);
                    AjaxCapchaCheck('comments.func.php', capcha.val(), anchor, 'comments_add_form');    // указать путь до файла!
                }
            } else {
                alert("минимум 30 символов");
            }
        } else {
            alert("минимум 3 символа");
        }
    });
Ответить с цитированием
  #23 (permalink)  
Старый 22.09.2016, 12:07
Кандидат Javascript-наук
Отправить личное сообщение для sergofedor06 Посмотреть профиль Найти все сообщения от sergofedor06
 
Регистрация: 10.11.2015
Сообщений: 131

Manyasha

а где вы здесь добавили код, тут вроде только мой код!
Ответить с цитированием
  #24 (permalink)  
Старый 22.09.2016, 12:11
Кандидат Javascript-наук
Отправить личное сообщение для sergofedor06 Посмотреть профиль Найти все сообщения от sergofedor06
 
Регистрация: 10.11.2015
Сообщений: 131

нужно чтобы работала проверка полей, а уже если все верно, и нажал на добавить комент, то уже скрипт должен не допускать повторных кликов по кнопке, вот так будет хорошо.
Ответить с цитированием
  #25 (permalink)  
Старый 22.09.2016, 12:17
Кандидат Javascript-наук
Отправить личное сообщение для sergofedor06 Посмотреть профиль Найти все сообщения от sergofedor06
 
Регистрация: 10.11.2015
Сообщений: 131

у меня изначально в скрипте идет проверка всех полей на длинну и наличия ссылки в них, если человек ввел короткий комент и нажал добавить его то всплывает подсказка минимум 30 символов и так далее как видно в коде!

но если я добавляю

ваш кусок кода в свой скрипт

//ДОБАВИЛА
				$('.add_comment').prop('disabled', false);
            },
            error: function (response) { //Если ошибка
                alert(response);
				
				$('.add_comment').prop('disabled', false);
            }
        });
    }

    $('body').on('click', "#comments_add_form input[type='submit']", function (e) {
        e.preventDefault();
		$('.add_comment').prop('disabled', true);
		//...
    });

//ДОБАВИЛА


то тогда все проверки накрываются медным тазом, при клике на отправить комент, сообщение не выскакывает и комент уже не отравить кнопка заблокирована, вот я о чем!
Ответить с цитированием
  #26 (permalink)  
Старый 22.09.2016, 12:27
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

Сообщение от sergofedor06 Посмотреть сообщение
Manyasha

а где вы здесь добавили код, тут вроде только мой код!
строка 14
Ответить с цитированием
  #27 (permalink)  
Старый 22.09.2016, 12:40
Кандидат Javascript-наук
Отправить личное сообщение для sergofedor06 Посмотреть профиль Найти все сообщения от sergofedor06
 
Регистрация: 10.11.2015
Сообщений: 131

добавил

$('.add_comment').prop('disabled', true);

но все осталось как и было, проверка не работает всеровно кнопку блокирует
Ответить с цитированием
  #28 (permalink)  
Старый 22.09.2016, 13:10
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

sergofedor06,
попробуйте так:
function AjaxCapchaCheck(url, capcha, anchor, form_id) {
        var url = url;
        var capcha = capcha;
        var page_anchor = anchor;
        var form_id = form_id;
        jQuery.ajax({
            url: url, //Адрес подгружаемой страницы
	        async: false,//ДОБАВИЛА 
            type: "POST", //Тип запроса
            data: {capcha: capcha}
            success: function (response) { //Если все нормально
                if (response == '1') {
                    AjaxFormRequest(form_id, url, page_anchor);
                } else {
                    alert('ошибка защитного кода');
                    document.images.cryptogram.src='captcha/cryptographp.php?cfg=0&&'+Math.round(Math.random(0)*1000)+1;    // указать путь до файла!
                    return false;
                }
            },
            error: function (response) { //Если ошибка
                alert(response);
            }
        });
    }


Или так:
function AjaxCapchaCheck(url, capcha, anchor, form_id) {
        var url = url;
        var capcha = capcha;
        var page_anchor = anchor;
        var form_id = form_id;
        jQuery.ajax({
            url: url, //Адрес подгружаемой страницы
            type: "POST", //Тип запроса
            data: {capcha: capcha},
			beforeSend: function(xhrObj, settings) {
				$('.add_comment').prop('disabled', true);
			},
            success: function (response) { //Если все нормально
                if (response == '1') {
                    AjaxFormRequest(form_id, url, page_anchor);
                } else {
                    alert('ошибка защитного кода');
                    document.images.cryptogram.src='captcha/cryptographp.php?cfg=0&&'+Math.round(Math.random(0)*1000)+1;    // указать путь до файла!
                    return false;
                }
            },
            error: function (response) { //Если ошибка
                alert(response);
            },
			complete: function(xhrObj, textStatus) {
				$('.add_comment').prop('disabled', false);
			}
        });
    }

весь остальной Ваш код без изменений в обоих случаях.
Ответить с цитированием
  #29 (permalink)  
Старый 22.09.2016, 16:20
Кандидат Javascript-наук
Отправить личное сообщение для sergofedor06 Посмотреть профиль Найти все сообщения от sergofedor06
 
Регистрация: 10.11.2015
Сообщений: 131

Manyasha

большое вам спасибо! терь как нужно, подошел второй вариант!
пропускает публикацию сообщения только раз хоть и много раз кликаю по кнопке.


Вопрос к вам Manyasha что делает эта функция, вернее 2 функции что вы добавили во втором примере

1.
beforeSend: function(xhrObj, settings) {
$('.add_comment').prop('disabled', true);
},


2.
complete: function(xhrObj, textStatus) {
$('.add_comment').prop('disabled', false);
}



Спасибо еще раз!
Ответить с цитированием
  #30 (permalink)  
Старый 22.09.2016, 16:32
Кандидат Javascript-наук
Отправить личное сообщение для sergofedor06 Посмотреть профиль Найти все сообщения от sergofedor06
 
Регистрация: 10.11.2015
Сообщений: 131

на самом деле поэкспериментировал, все ровно при многократном нажатии идут дубли комментарием, просто их проскакывает меньше чем изначально, но не так что бы нажал кучу раз, а комментарий был один!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ссылка для нажатия кнопки hidden liringea Элементы интерфейса 7 09.08.2013 18:38
Как вернуться к месту нажатия ссылки после скроллинга? galva74 jQuery 2 02.05.2012 10:41
Имитация нажатия кнопки ehan jQuery 9 14.12.2011 14:07
Событие hover только после 2 секунд niksan jQuery 7 12.08.2010 14:16
Сохранение результата ajax запроса после нажатия 'back' gregOlsen AJAX и COMET 5 18.11.2009 12:23