Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.06.2016, 16:29
Интересующийся
Отправить личное сообщение для semen17 Посмотреть профиль Найти все сообщения от semen17
 
Регистрация: 29.02.2016
Сообщений: 13

Повторное событие по клику
Добрый день. Есть таблица с товарами и напротив каждого кнопочка "Узнать цену" при нажатии по которой всплывает форма, в которой нужно ввести имя, тел, мыло и т.п.. Так вот, сообщение отправляется только 1 раз, более скрипт не срабатывает, форма появляется, но кнопка "отправить" не срабатывает. Подскажите, как решить проблему?
jQuery(document).ready(function() {

	jQuery('span#button_mes').click(function() {
	error=0;
	jQuery( "#name" ).removeClass( "red_border" );
	jQuery( "#phone" ).removeClass( "red_border" );
	jQuery( "#email" ).removeClass( "red_border" );
	jQuery( "#mes" ).removeClass( "red_border" );
	name=document.getElementById('name').value;
	email=document.getElementById('email').value;
	phone=document.getElementById('phone').value;
	mes=document.getElementById('mes').value;


	if (name=='' || name=='Имя') 
	{
	jQuery( "#name" ).addClass( "red_border" );						
	error=1;
	}
	if (phone=='' || phone=='Телефон') 
	{
	jQuery( "#phone" ).addClass( "red_border" );						
	error=1;
	}
	var pattern = /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i;
	if (email=='' || email=='Email' || !pattern.test(email))
	{
	jQuery( "#email" ).addClass( "red_border" );								
	error=1;
	}
	if (mes=='' || mes=='Текст сообщения') 
	{
	jQuery( "#mes" ).addClass( "red_border" );						
	error=1;	
	}
				if (error==0)
				{
					jQuery.ajax({
						type: 'POST',
						url: '/js/mail.php',
						data: 'name='+name+'&email='+email+'&phone='+phone+'&mes='+mes+'&par=2',
						success: function(data){
						alert ('Ваше обращение принято, в скором времени с Вами свяжется наш сотрудник');
						document.getElementById('name').value='';
						document.getElementById('phone').value='';
						document.getElementById('email').value='';
						document.getElementById('mes').value='';
						}
						});
				}
				return false; // вернем false тогда переход по урлу не будет
	})
	jQuery('span#button_zak').click(function() {
	error=0;
	jQuery( "#name_zak" ).removeClass( "red_border" );
	jQuery( "#phone_zak" ).removeClass( "red_border" );
	name=document.getElementById('name_zak').value;
	phone=document.getElementById('phone_zak').value;
	if (name=='' || name=='Имя') 
	{
	jQuery( "#name_zak" ).addClass( "red_border" );						
	error=1;
	}
	if (phone=='' || phone=='Телефон') 
	{
	jQuery( "#phone_zak" ).addClass( "red_border" );						
	error=1;
	}
	if (error==0)
				{
					jQuery.ajax({
						type: 'POST',
						url: '/js/mail.php',
						data: 'name='+name+'&phone='+phone+'&par=1',
						success: function(data){
						alert ('Ваше обращение принято, в скором времени с Вами свяжется наш сотрудник');
						document.getElementById('name_zak').value='';
						document.getElementById('phone_zak').value='';
						}
						});
				}
				return false; // вернем false тогда переход по урлу не будет
	})									 
});
Ответить с цитированием
  #2 (permalink)  
Старый 11.06.2016, 16:53
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от semen17 Посмотреть сообщение
Подскажите, как решить проблему?
Заполни поля.
Ответить с цитированием
  #3 (permalink)  
Старый 11.06.2016, 17:27
Интересующийся
Отправить личное сообщение для semen17 Посмотреть профиль Найти все сообщения от semen17
 
Регистрация: 29.02.2016
Сообщений: 13

Rise,
Поля заполнены. Я ведь не пустую форму отправляю.
Ответить с цитированием
  #4 (permalink)  
Старый 11.06.2016, 17:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

alert ('Ваше обращение принято, в скором времени с Вами свяжется наш сотрудник');
document.getElementById('name').value='';
document.getElementById('phone').value='';
document.getElementById('email').value='';
document.getElementById('mes').value='';
- зачем?
Ответить с цитированием
  #5 (permalink)  
Старый 11.06.2016, 18:25
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

semen17, тогда в представленном коде больше нет препятствий для повторной отправки.
Ответить с цитированием
  #6 (permalink)  
Старый 11.06.2016, 18:45
Интересующийся
Отправить личное сообщение для semen17 Посмотреть профиль Найти все сообщения от semen17
 
Регистрация: 29.02.2016
Сообщений: 13

laimas,
Чтобы очистить поля...
Ответить с цитированием
  #7 (permalink)  
Старый 11.06.2016, 19:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Форма очищается reset(). Но зачем?

if (name=='' || name=='Имя') - то есть, если я ввиду просто пробел, то это вполне нормально, а вот "Имя" ни в коем случае? Но можно же еще написать и "Мое", "Сам не знаю", и еще кучу разных вариаций, что же вы их не проверяете? Тоже самое и с телефоном, и мылом... и это при том, что "с Вами свяжется наш сотрудник" , а значит Человек читает, не Робот.

Кроме этого, уж коли вам нужна истина, то сервер ну просто обязан проверить и тоже вернуть ошибки если есть. А коли нет, и "с Вами свяжется наш сотрудник" , то все, форма должна не очиститься, а "умереть" или вы до бесконечности ее принимать решили?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие/закрытие дива по клику ссылки и закрытие по клику вне слоя vertmann Общие вопросы Javascript 3 18.11.2013 14:36
Событие click Гробовщик jQuery 1 31.07.2013 07:28
Повесить событие на кнопку, не меняя кода кнопки Weks Общие вопросы Javascript 8 11.11.2012 16:13
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
jQuery: событие по второму подрят клику timyrio Общие вопросы Javascript 23 02.05.2011 01:11