в итоге если человек ввел комментарий менее 30 знаков то ему не всплывает сообщение что нужно ввести более 30 знаков, и форма не работает так как кнопку переклинило и нужно перегружать страницу!
|
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 символа"); } }); |
Manyasha
а где вы здесь добавили код, тут вроде только мой код! |
нужно чтобы работала проверка полей, а уже если все верно, и нажал на добавить комент, то уже скрипт должен не допускать повторных кликов по кнопке, вот так будет хорошо.
|
у меня изначально в скрипте идет проверка всех полей на длинну и наличия ссылки в них, если человек ввел короткий комент и нажал добавить его то всплывает подсказка минимум 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); //... }); //ДОБАВИЛА то тогда все проверки накрываются медным тазом, при клике на отправить комент, сообщение не выскакывает и комент уже не отравить кнопка заблокирована, вот я о чем! |
Цитата:
|
добавил
$('.add_comment').prop('disabled', true); но все осталось как и было, проверка не работает всеровно кнопку блокирует |
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); } }); } весь остальной Ваш код без изменений в обоих случаях. |
Manyasha
большое вам спасибо! терь как нужно, подошел второй вариант! пропускает публикацию сообщения только раз хоть и много раз кликаю по кнопке. Вопрос к вам Manyasha что делает эта функция, вернее 2 функции что вы добавили во втором примере 1. beforeSend: function(xhrObj, settings) { $('.add_comment').prop('disabled', true); }, 2. complete: function(xhrObj, textStatus) { $('.add_comment').prop('disabled', false); } Спасибо еще раз! |
на самом деле поэкспериментировал, все ровно при многократном нажатии идут дубли комментарием, просто их проскакывает меньше чем изначально, но не так что бы нажал кучу раз, а комментарий был один!
|
Часовой пояс GMT +3, время: 09:22. |