22.09.2016, 11:52
|
Кандидат Javascript-наук
|
|
Регистрация: 10.11.2015
Сообщений: 131
|
|
в итоге если человек ввел комментарий менее 30 знаков то ему не всплывает сообщение что нужно ввести более 30 знаков, и форма не работает так как кнопку переклинило и нужно перегружать страницу!
|
|
22.09.2016, 11:58
|
Профессор
|
|
Регистрация: 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 символа");
}
});
|
|
22.09.2016, 12:07
|
Кандидат Javascript-наук
|
|
Регистрация: 10.11.2015
Сообщений: 131
|
|
Manyasha
а где вы здесь добавили код, тут вроде только мой код!
|
|
22.09.2016, 12:11
|
Кандидат Javascript-наук
|
|
Регистрация: 10.11.2015
Сообщений: 131
|
|
нужно чтобы работала проверка полей, а уже если все верно, и нажал на добавить комент, то уже скрипт должен не допускать повторных кликов по кнопке, вот так будет хорошо.
|
|
22.09.2016, 12:17
|
Кандидат Javascript-наук
|
|
Регистрация: 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);
//...
});
//ДОБАВИЛА
то тогда все проверки накрываются медным тазом, при клике на отправить комент, сообщение не выскакывает и комент уже не отравить кнопка заблокирована, вот я о чем!
|
|
22.09.2016, 12:27
|
Профессор
|
|
Регистрация: 21.09.2015
Сообщений: 196
|
|
Сообщение от sergofedor06
|
Manyasha
а где вы здесь добавили код, тут вроде только мой код!
|
строка 14
|
|
22.09.2016, 12:40
|
Кандидат Javascript-наук
|
|
Регистрация: 10.11.2015
Сообщений: 131
|
|
добавил
$('.add_comment').prop('disabled', true);
но все осталось как и было, проверка не работает всеровно кнопку блокирует
|
|
22.09.2016, 13:10
|
Профессор
|
|
Регистрация: 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);
}
});
}
весь остальной Ваш код без изменений в обоих случаях.
|
|
22.09.2016, 16:20
|
Кандидат Javascript-наук
|
|
Регистрация: 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);
}
Спасибо еще раз!
|
|
22.09.2016, 16:32
|
Кандидат Javascript-наук
|
|
Регистрация: 10.11.2015
Сообщений: 131
|
|
на самом деле поэкспериментировал, все ровно при многократном нажатии идут дубли комментарием, просто их проскакывает меньше чем изначально, но не так что бы нажал кучу раз, а комментарий был один!
|
|
|
|