[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: $.ajax - повтороное использование
mspuz
Добрый день. Имеется страница, на которой находится список товаров. Под каждым товаром есть ссылка - купить в 1 клик. При нажатии на которую методом jquery $.ajax - выводится форма оформления заказа. После этого в форме нажимаем отправить и появляется сообщение (fadeOut) - все успешно. Все вроде нормально. Но. Если, не обновляя страницу, нажать на следующую ссылку "купить в 1 клик" - появляется только сообщение (fadeOut) - все успешно. Вот и вопрос - как мне "сбросить" параметры, чтобы при повторном нажатии появлялась вновь чистая форма? Спасибо.
Игорь_Vasinsky
а как обычно что-то сбрасывают? так и сбрасывайте, не придумывайте велосипед)

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
DedMorozzz
На самом деле "сбрасывать" по дефолту ничег не надо. В данном случае обратная ситуация. Спец. запоминается результат отета и при клике проверяется, имеется ли уже результат.
Что требуется сделать - убрать проверку на наличие результата. А лучше проверку оставить, но для конкретного айдишника

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
mspuz
Так, вроде, нет ни каких проверок. Просто в этой функции:


$(document).ready(function() {
$(".modalbox").fancybox();
$("#contact").submit(function() { return false; });

$("#send").on("click", function(){
var dost = $('input:radio[name=windsender706]:checked').val();
var samo = $('input:radio[name=windsender1]:checked').val();
var pay = $('input:radio[name=windsender708]:checked').val();
var city = $("#acity").val();
var street = $("#astreet").val();
var bild = $("#abild").val();
var fname = $("#sname").val();
var sname = $("#fname").val();
var emailval = $("#email").val();
var mailvalid = validateEmail(emailval);
var mobphone = $("#mobphone").val();
var homephone = $("#homephone").val();

if (dost == null) {
alert("Укажите способ доставки!!!");
return;
}
if ((dost == "Самовывоз из магазинов") && (samo == null)) {
alert("Укажите адрес магазина самовывоза!!!");
return;
}
if ((dost != "Самовывоз из магазинов") && ((city == "") || (street == "") || (bild == ""))) {
alert("Укажите обязательные поля адреса!!!");
return;
}
if (pay == null) {
alert("Укажите способ оплаты!!!");
return;
}
if ((fname == "") || (sname == "")) {
alert("Укажите ФИО!!!");
return;
}
if (mailvalid == false) {
alert("Неверно указан email!!!");
return;
}
if ((mobphone == "") && (homephone == "")) {
alert("Укажите хотя бы один номер телефона!!!");
return;
}

$.ajax({
type: 'POST',
url:'sendmessage.php',
data: $("#contact").serialize(),
success: function(data) {
if(data == "true") {
$("#contact").fadeOut("fast", function(){
$(this).before("<p><strong>Успешно! Ваше сообщение отправлено :)</strong></p>");
setTimeout("$.fancybox.close()", 1000);
});
}
}
});
});
});


все прописано и при повторном нажатии она срабатывает - как будто кнопка отправить (send) нажата вновь.
DedMorozzz
проблема в том, что ты всегда используешь один и тот же айдишник. После ответ аякса должен обрататываться уникальный айдишник, для данной записи, а не один для всех

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
mspuz
А если я добавлю метод resetForm - это не сбросит форму к первоначальному виду? Делаю вот так:

$.ajax({
type: 'POST',
cache: false,
url:$url,
data: $("#contact").serialize(),
success: function(data) {
$("#contact").fadeOut("fast", function(){
$(this).before("<p><strong>Успешно! Ваше сообщение отправлено :)</strong></p>");
setTimeout("$.fancybox.close()", 1000);
});
$("#contact").resetForm();
}
}
);


Но все равно не работает.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.