@Apple_ins

Как сократить скрипт проверки формы?

<form method="post" class="form-container"  action="https://wl.walletone.com/checkout/checkout/Index">
		
			 	<div id="errmail" style="display:none;">
		<center>
			<b><font color="red" size="3">Введите корректный E-mail</font></b>
		</center>
	</div>
	
 	<div id="errvk" style="display:none;">
		<center>
			<b><font color="red" size="3">Укажите полную ссылку аккаунта ВКонтакте</font></b>
		</center>
	</div>
	
		<div class="form-title"><p>&nbsp;&nbsp;&nbsp;Email</p></div>
			<input id="formzakaz" autocomplete="off" type="text" name="mail" class="form-field" placeholder="support@konkon.ru">
			<div class="form-title"><p>&nbsp;&nbsp;&nbsp;Аккаунт ВКонтакте</p></div>
			<input id="vk" name="cc" class="form-field" placeholder="http://vk.com/id3432525" type="text"></input>			

			<div class="submit-container">
	<input type="submit" id="formzakazbtn"   value="Отправить">
	</div>
			
		</form>
	</center>
	
	
</div>


<script>
$(document).ready(function(){
 $success_e = false;
 $success_t = false;
 
 $('form').on('keyup', '#formzakaz', function(){
  var $val = $(this).val(),
   r = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
  
  if (!r.test($val)) {
   $(this).addClass('wrong');
   $success_e = false;

   $('#errmail').fadeIn(750);
   return false;
  } else {
   $(this).removeClass('wrong');
   $('#errmail').fadeOut(500);
   $success_e = true;
  }


 }); 
 
 $('form').on('keyup', '#vk', function(){
  var $val = $(this).val(),
   n = /https?:\/\/vk\.com\/[a-z0-9:@./?\\%&=]+/i ;
  
  if (!n.test($val)) {
   $(this).addClass('wrongt');
   $success_t = false;

   $('#errvk').fadeIn(750);
   return false;
  } else {
   $(this).removeClass('wrongt');
   $('#errvk').fadeOut(500);
   $success_t = true;
  }


 });
 
	$('form').submit(function(){
		if (!$success_t) $('#errvk').fadeIn(750);
		if (!$success_e) $('#errmail').fadeIn(750);
		if (!$success_t || !$success_e) return false;
	});
});
</script>

Все бы хорошо, но 2 форма не работает из-за этого обработчика. Нельзя как-то доработать обработчик, чтобы вторая форма не реагировала на него?
  • Вопрос задан
  • 126 просмотров
Решения вопроса 2
ProjectSoft
@ProjectSoft
Front-end && Back-end разработчик
Давайте формам свои id и вешайте обработчики к нужным формам, а не на все формы на странице.
Ответ написан
Комментировать
mrusklon
@mrusklon
Не получается? Яростно гугли!
$('form') меняем на $('.anyClass') и вешаем класс нужной форме
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
07 мая 2024, в 14:11
4000 руб./за проект
07 мая 2024, в 14:10
10000 руб./за проект
07 мая 2024, в 13:57
5000 руб./за проект