21.09.2016, 20:13
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
Сообщение от sergofedor06
|
я ее убрал, как с ней так и без толку нет
|
... а поставить код внизу страницы и не мудрить?
|
|
21.09.2016, 21:27
|
|
Профессор
|
|
Регистрация: 21.11.2015
Сообщений: 440
|
|
sergofedor06,
в квериСелектор пихай селектор как есть! С точечкой
|
|
21.09.2016, 22:55
|
Кандидат Javascript-наук
|
|
Регистрация: 10.11.2015
Сообщений: 131
|
|
как не пробовал вставлять скрипт так ничего и не вышло, все ровно при многократном нажатии на кнопку добавить комментарий закидывает комментарий столько раз сколько нажал на кнопку!
вот весь мой скрипт на аяксе
$(document).ready(function () {
function AjaxRefresh(url, page_anchor, form_id) {
var url = url;
var page_anchor = page_anchor;
jQuery.ajax({
url: url, //Адрес подгружаемой страницы
type: "POST", //Тип запроса
data: {comments_get_all: 1, anchorFromAjax: page_anchor},
success: function (response) { //Если все нормально
$('#comments_field').html(response);
$("#"+form_id+" input[type='text'], textarea").val("");
$("#"+form_id+" #result").fadeIn(400,
function(){
$('this')
.css('display', 'block')
.animate({opacity: 1, top: '50%'}, 200)
});
document.images.cryptogram.src='captcha/cryptographp.php?cfg=0&&'+Math.round(Math.random(0)*1000)+1; // указать путь до файла!
},
error: function (response) { //Если ошибка
alert(response);
}
});
}
function AjaxFormRequest(form_id, url, page_anchor) {
var form_id = form_id;
var url = url;
var page_anchor = page_anchor;
jQuery.ajax({
url: url, //Адрес подгружаемой страницы
type: "POST", //Тип запроса
dataType: "html", //Тип данных
data: jQuery("#" + form_id).serialize(),
success: function (response) { //Если все нормально
if (response == '0') {
alert('есть ссылки в коментарии');
} else {
AjaxRefresh(url, page_anchor, form_id);
}
},
error: function (response) { //Если ошибка
alert(response);
}
});
}
function AjaxWordsCheck(url, str) {
var url = url;
var str = str;
jQuery.ajax({
url: url, //Адрес подгружаемой страницы
type: "POST", //Тип запроса
data: {words: str},
dataType: "html",
success: function (response) { //Если все нормально
return response;
},
error: function (response) { //Если ошибка
return false;
}
});
}
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},
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);
}
});
}
$('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 {
AjaxCapchaCheck('comments.func.php', capcha.val(), anchor, 'comments_add_form'); // указать путь до файла!
}
} else {
alert("минимум 30 символов");
}
} else {
alert("минимум 3 символа");
}
});
});
|
|
22.09.2016, 10:45
|
Кандидат Javascript-наук
|
|
Регистрация: 10.11.2015
Сообщений: 131
|
|
Помогите пожалуйста сделать правку в этом скрипте чтобы не срабатывала кнопка после первого нажатия
|
|
22.09.2016, 11:00
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
sergofedor06,
var flag;
$('body').on('click', "#comments_add_form input[type='submit']", function (e) {
e.preventDefault();
var el = this;
if(flag)return;
else {flag = true;
el.setAttribute('disabled', 'disabled');
window.setTimeout(function() {
el.removeAttribute('disabled');
flag = false;
}, 10000)};
var user_name = $("#comments_add_form #user_name");
|
|
22.09.2016, 11:13
|
Кандидат Javascript-наук
|
|
Регистрация: 10.11.2015
Сообщений: 131
|
|
Спасибо рони
я так понимаю что ваш скрипт мне нужно добавить в мой скрипт
перед этой строкой
var user_name = $("#comments_add_form #user_name");
|
|
22.09.2016, 11:16
|
Профессор
|
|
Регистрация: 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, //Адрес подгружаемой страницы
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;
}
//ДОБАВИЛА
$('.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, 11:21
|
Кандидат Javascript-наук
|
|
Регистрация: 10.11.2015
Сообщений: 131
|
|
рони
к сожалению не выходит, еще до заполнения формы комментария я жму на кнопку добавить комментарий
идет перенаправление, должна срабатывать проверка (поля не заполнены и тд....)
|
|
22.09.2016, 11:30
|
Кандидат Javascript-наук
|
|
Регистрация: 10.11.2015
Сообщений: 131
|
|
рони
сделал так с кодом
var flag;
$('body').on('click', "#comments_add_form input[type='submit']", function (e) {
e.preventDefault();
var el = this;
if(flag)return;
else {flag = true;
el.setAttribute('disabled', 'disabled');
window.setTimeout(function() {
el.removeAttribute('disabled');
flag = false;
}, 10000)};
var user_name = $("#comments_add_form #user_name");
терь нет переадресации, но при многократном нажатии всеровно проскакивают дубли в бд
|
|
22.09.2016, 11:49
|
Кандидат Javascript-наук
|
|
Регистрация: 10.11.2015
Сообщений: 131
|
|
[quote=Manyasha;429437] sergofedor06,
может так получится?
//ДОБАВИЛА
$('.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);
//...
});
//ДОБАВИЛА
Ваш способ вроде как блокирует кнопку после отправки комментария
но есть проблемы он работает в том случае если человек
верно заполнил поля
имя
текст комментария
и каптчу
и нажал отправить комментарий, тогда все норм!
но если человек не верно заполнил хотя бы одно поле то при нажатии на добавить комментарий ему уже не всплывают подсказки где он сделал ошибки, так как бутон работает только одно нажатие и все, блок, еслибы ваш скрипт срабатывал только после того как пользователь верно введет данные во все поля!
а если он вводит не верно то все ровно не может отправить у меня блокировка стоит! на длину, ссылка в тексте.
|
|
|
|