Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.06.2019, 19:09
Аватар для ozoro
Интересующийся
Отправить личное сообщение для ozoro Посмотреть профиль Найти все сообщения от ozoro
 
Регистрация: 04.05.2019
Сообщений: 21

как удалить событие успешной отпраки формы после закрытия модального окна?
После успешной отпраки формы в два этапа (изначально предварительные поля заголовок и текст, после нажатия далее, модальное окно с полями Имя и Email) на втором этапе отправляю форму... после успешной отправки поля формы 2-го этапа удаляю и выдаю сообщение об успешной отправке:

........,

success: function (response) {
                    $(document).trigger('tickets_ticket_save', response);
                    $('#ticketForm.create').sisyphus().manuallyReleaseData();

                    if (response.success) {
                        if (response.message) {
                            Tickets.Message.success(response.message);
                        }
                        if (action == 'ticket/save') {
							
                            $(form).find('input[type="submit"], input[type="button"]').removeAttr('disabled');
                            if (response.data['content']) {
                                $('#ticket-editor').val(response.data['content']);
                            }
                            $('#ticket-files-list').find('.deleted').each(function() {
                                $(this).remove();
                            })
                        }
						// так вот сделал
						$(form).hide();
						$('input').val('');	
						$('textarea').val('');												
						$(".modal-title").html('<b style="display:block;text-align:center;">Вопрос успешно отправлен!</b>');
						$(".modal-body").html('<div class="clr berrors">После ответа на Ваш вопрос Вы получите сообщение на свой Email</div>');
						
						
							$(".modal").on("hidden.bs.modal", function () {
								location.reload();//перезагружаем страницу после закрытия модального окна
							});						
						// END так вот сделал

                    }
,.....



Не нашел ничего лучше чем перезагружать страницу после закрытия модального окна с сообщением об успешной отправке для полного обнуления формы (чтобы форма вернулась в первоначальный вид), но хотелось бы обнулить форму и удалить событие об успешной отправке без перезагрузки страницы... а то получается, если не перезагружать страницу, а просто делать $('поле формы').val(''); то после нажатия на кнопку перехода во второй этап вместо полей Имя и Email) выдает сразу сообщение об успешной отправки формы.

Последний раз редактировалось ozoro, 13.06.2019 в 19:20.
Ответить с цитированием
  #2 (permalink)  
Старый 13.06.2019, 19:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,476

Метод .reset() формы.

А $(form).find('input[type="submit"], input[type="button"]').removeAttr('disabled');, это $(form).find('input[type="submit"], input[type="button"]').prop('disabled', true/false);
Ответить с цитированием
  #3 (permalink)  
Старый 14.06.2019, 20:10
Аватар для ozoro
Интересующийся
Отправить личное сообщение для ozoro Посмотреть профиль Найти все сообщения от ozoro
 
Регистрация: 04.05.2019
Сообщений: 21

laimas,
ничего не понял из этого ответа.
При чем тут
А $(form).find('input[type="submit"], input[type="button"]').removeAttr('disabled');, это $(form).find('input[type="submit"], input[type="button"]').prop('disabled', true/false);
это же делает неактивность кнопки...

Метод .reset() формы не срабатывает, выдавал ошибку
если указать так:
$(".modal").on("hidden.bs.modal", function () {
								
$(".modal-title").html('Оставьте свои контактные данные');
$("div.berrors").detach();
$(form).show();
$(form)[0].reset();

});


TypeError: $(...)[0] is undefined
и форма не восстанавливается, то есть .show(); не срабатывает и reset() undefined

если указать так:
$(".modal").on("hidden.bs.modal", function () {
								
$(".modal-title").html('Оставьте свои контактные данные');
$("div.berrors").detach();
$(form).show();
$(form).reset();

});


TypeError: $(...).reset is not a function
Ответить с цитированием
  #4 (permalink)  
Старый 14.06.2019, 21:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 26,102

Сообщение от ozoro
$(form).show();
добавьте кавычки или укажите иной селектор нужной формы.
Ответить с цитированием
  #5 (permalink)  
Старый 15.06.2019, 12:42
Аватар для ozoro
Интересующийся
Отправить личное сообщение для ozoro Посмотреть профиль Найти все сообщения от ozoro
 
Регистрация: 04.05.2019
Сообщений: 21

рони,
........,

success: function (response) {
                    $(document).trigger('tickets_ticket_save', response);
                    $('#ticketForm.create').sisyphus().manuallyReleaseData();

                    if (response.success) {
                        if (response.message) {
                            Tickets.Message.success(response.message);
                        }
                        if (action == 'ticket/save') {
							
                            $(form).find('input[type="submit"], input[type="button"]').removeAttr('disabled');
                            if (response.data['content']) {
                                $('#ticket-editor').val(response.data['content']);
                            }
                            $('#ticket-files-list').find('.deleted').each(function() {
                                $(this).remove();
                            })
                        }
				// так вот сделал
				$(form).hide(); //скрываем форму
				$('input').val('');	
				$('textarea').val('');												
				$(".modal-title").html('<b style="display:block;text-align:center;">Вопрос успешно отправлен!</b>');
				$(".modal-body").html('<div class="clr berrors">После ответа на Ваш вопрос Вы получите сообщение на свой Email</div>');
						
						
					$(".modal").on("hidden.bs.modal", function () {
						//location.reload();//перезагружаем страницу после закрытия модального окна
						
                        $('.modal-title').html('Оставьте свои контактные данные');
						$('.berrors').html('');
						$('div.berrors').detach();
								
						$('#ticketForm').show().reset(); // показываем и очищаем форму, НО ЭТО ПОЧЕМУ-ТО НЕ РАБОТАЕТ, ФОРМА НЕ ПОКАЗЫВАЕТСЯ И В КОНСОЛИ ОШИБКА : "TypeError: $(...).show(...).reset is not a function"


					});						
						// END так вот сделал

                    }
,.....


Указал непосредственно селектор формы, НО ЭТО ПОЧЕМУ-ТО НЕ РАБОТАЕТ, ФОРМА НЕ ПОКАЗЫВАЕТСЯ (не восстанавливается) И В КОНСОЛИ ОШИБКА : "TypeError: $(...).show(...).reset is not a function"


Если сделать так:
$('#ticketForm').show();
$('#ticketForm').reset();


То форма также не восстанавливается и в консоли ошибка: "TypeError: $(...).reset is not a function"


А если указать так:
$('#ticketForm').show();
$('#ticketForm')[0].reset();


То в консоли: "TypeError: $(...)[0] is undefined"

Последний раз редактировалось ozoro, 15.06.2019 в 13:12.
Ответить с цитированием
  #6 (permalink)  
Старый 16.06.2019, 05:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,476

Сообщение от ozoro
При чем тут
При том, что это свойство, также как и checked, и атрибута соответствующего может и не быть, это просто JQ добавляет удаляет атрибут элементу. И оперировать свойствами в JQ нужно методом prop().

А если "TypeError: $(...)[0] is undefined", значит нет объекта.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступ к значениям элементов формы модального окна. =VNK= jQuery 5 14.01.2012 14:00
Как удалить все одинаковые атрибуты с формы ? saturn Элементы интерфейса 1 12.10.2011 21:46
как удалить элемент который идет после элемента .form? FRIE jQuery 2 03.06.2011 13:35
Как присвоить значение элементу формы материнского окна из дочернего? libinstyle Events/DOM/Window 15 28.07.2010 15:56
Как вызвать событие после события определенного в onchange Наталья Events/DOM/Window 2 12.09.2009 12:51