Javascript.RU

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

form.submit(); не работает
Здравствуйте, знаю что тема избита и в интернете узнал что не стоит присваивать имя "submit" для отправки, но это не помогает, валидация успешно работает, однако форма не отправляется, в консоле такая ошибка (valid.js:40 Uncaught TypeError: form.find(...).size is not a function(…)).
Помогите кто знает. Спасибо.
<!DOCTYPE html>

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" type="text/css" href="css/style.css"/>
	<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
	<script src="js/valid.js"></script>
	<title>Авторизация</title>
</head>

<body>

	<div>
		<div style = "margin: 50px auto; width: 200px;" class = "inner_color">
			<form id="loginform" action="testlogin.php" method="post" class="rf">
				<div class = "container">
					<div>
						<label class = "title">Логин</label><br>
						<input type = "text" name="login" class="rfield">
					</div>
				</div>
				<!-------------------------------------------------->
				<div class = "container">
					<label class = "title">Пароль</label><br>
					<input type = "text" name="password" class="rfield">
				</div>
				
				<input type="submit" class="button btn_submit disabled" value="Войти" />
				
			</form>
			
			<form action="registr.php" method="post">
				<input type="submit" name="registr" class="button" value="Регистрация" />
			</form>
			
			<div class = "container">
					<label class = "title"><? echo $_GET['alert']; ?></label>
			</div>
		</div>
	</div>
	
</body>
</html>


valid.js
(function( $ ){

$(function() {

  $('.rf').each(function(){
    // Объявляем переменные (форма и кнопка отправки)
	var form = $(this),
        btn = form.find('.btn_submit');

    // Добавляем каждому проверяемому полю, указание что поле пустое
	form.find('.rfield').addClass('empty_field');

    // Функция проверки полей формы
    function checkInput(){
      form.find('.rfield').each(function(){
        if($(this).val() != ''){
          // Если поле не пустое удаляем класс-указание
		$(this).removeClass('empty_field');
        } else {
          // Если поле пустое добавляем класс-указание
		$(this).addClass('empty_field');
        }
      });
    }

    // Функция подсветки незаполненных полей
    function lightEmpty(){
      form.find('.empty_field').css({'border-color':'#d8512d'});
      // Через полсекунды удаляем подсветку
      setTimeout(function(){
        form.find('.empty_field').removeAttr('style');
      },500);
    }

    // Проверка в режиме реального времени
    setInterval(function(){
      // Запускаем функцию проверки полей на заполненность
	  checkInput();
      // Считаем к-во незаполненных полей
      var sizeEmpty = form.find('.empty_field').size();
      // Вешаем условие-тригер на кнопку отправки формы
      if(sizeEmpty > 0){
        if(btn.hasClass('disabled')){
          return false
        } else {
          btn.addClass('disabled')
        }
      } else {
        btn.removeClass('disabled')
      }
    },500);

    // Событие клика по кнопке отправить
    btn.click(function(){
      if($(this).hasClass('disabled')){
        // подсвечиваем незаполненные поля и форму не отправляем, если есть незаполненные поля
		lightEmpty();
        return false
      } else {
        // Все хорошо, все заполнено, отправляем форму
        form.submit();
      }
    });
  });
});

})( jQuery );

Последний раз редактировалось eridan, 14.11.2016 в 13:08.
Ответить с цитированием
  #2 (permalink)  
Старый 14.11.2016, 13:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от eridan
в консоле такая ошибка
(valid.js:40 Uncaught TypeError: form.find(...).size is not a function(…)).

Помогите кто знает.
Нет такой функции...
Ответить с цитированием
  #3 (permalink)  
Старый 14.11.2016, 13:23
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

eridan, с какой целью jquery 3 используешь?
Ответить с цитированием
  #4 (permalink)  
Старый 14.11.2016, 13:26
Интересующийся
Отправить личное сообщение для eridan Посмотреть профиль Найти все сообщения от eridan
 
Регистрация: 22.10.2015
Сообщений: 16

Код не мой, честно стибрил с интернета, понравилась универсальность валидации, легко подставить к любой форме.

Вот оригинал статьи откуда взял, там тоже вопрос задал, но пока без ответа. http://www.howtomake.com.ua/front/si...ld-jquery.html

Последний раз редактировалось eridan, 14.11.2016 в 13:35.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11