Валидация формы, не работает
Я не знаю, в чём дело, пытаюсь сделать банальную проверку на заполненность формы, а ничего не работает. Помогите найти ошибку!
<div id = "content" class="f_left"> <form> <div class="yourName"> <p><b>Ваше имя <em>*</em></b><br> <input type = "text" name = "login" size="50" value="" /> </p> <div class="button f_left"> <button type = "submit" id="send" class="color_button b3radius">Регистрация</button> </div> </form> </div> Когда я жму на кнопку, ничего не происходит $('form').submit(function(){ $(this).find('.error').remove(); if($(this).find('input[type=text]').val()==' '){ .before('<div class="error">Enter</div>'); return false; } |
Зачем так писать type = "text" name = "login", расставляя лишние пробелы?
А это ошибка: if($(this).find('input[type=text]').val()==' '){ .before('<div class="error">Enter</div>'); return false; } После кого? Должен быть указан объект: $(this).before ... А значения проверять надо так: if($.trim($(this).find('input:text').val())) .... то есть удаляя по краям пробелы, и если после этого поле пустое, значит ошибка, ведь просто один пробел, это не значение, если только не определено нечто специальное для него. |
Ничего не получается. уже с десяток способов попробовал. Ладно, спасибо за помощь, удалю и буду уроки на ютубе смотреть
|
Цитата:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style> .error { color: #f00; } </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script> $(function() { $('form').submit(function() { $(this).prev().remove(); if($.trim(!$(this).find('input:text').val())) { $(this).before('<div class="error">Error</div>'); return false; } }); }); </script> </head> <body> <div id="content" class="f_left"> <form> <div class="yourName"> <p><b>Ваше имя <em>*</em></b><br> <input type="text" name="login" size="50" value="" /> </p> <div class="button f_left"> <button type="submit" id="send" class="color_button b3radius">Регистрация</button> </div> </div> </form> </body> </html> |
Вам выше пояснили уже что ошибки синтаксические. Откройте консоль (F12) и все увидите. Когда копируете и вставляете куски кода будите предельно внимательны.
Возможно вы хотели что-то в этом роде: jQuery(function($) { $('form').submit(function(e) { var inputText = $('input[type=text]', this); $('.error', this).remove(); if ($.trim(inputText.val())) { inputText.before('<div class="error">Ошибка</div>'); return false; } }); }); |
Да, извините, что с ошибками копировал, хотел исправить, но не нашёл, как редактировать свою запись :help: У меня в задании сказано, чтобы каждый инпут был отдельно в диве. А как сделать, чтобы ограничивался с 5 до 11 символов. И кстати я как раз по учебнику и делал, просто пытался адаптировать под свою форму и какую-то ерунду наделал
|
Вариантов полно к примеру.
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8" /> <script type="text/javascript" src="./js/jquery-2.1.4.min.js"></script> <script type="text/javascript"> jQuery(function($) { $('#test') .keyup(function() { var len = this.value.length; $(this).css('border-color', ( len < 5 || len > 11 ) ? 'red' : 'green'); }).keyup(); }); </script> </head> <body> <input type="text" id="test" /> </body> </html> |
Часовой пояс GMT +3, время: 07:08. |