JackShcherbakov
@JackShcherbakov

Почему не работает код?

<!DOCTYPE html>
<html>

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Untitled 1</title>
<script src="jquery-3.2.1.min.js"></script>
<script src="jquery.validate.min.js"></script>
<script>
$(document).ready(function(){
	$('select').change(function(){
			if($('select :selected').val() == '--Выберите город--'){
				$('input[type="submit"]').click(function(evt){
					evt.preventDefault();
				});
			}
	});	
});
</script>
<style>
legend{
	text-align:center;
}
</style>
</head>

<body>
	<form action="action.html" enctype="multipart/form-data" method="post">
		<fieldset>
			<legend>Регистрация</legend>
			<legend>Имя
				<input type="text" name="name" placeholder="Введите имя">
			</legend>
			<legend>Фамилия
				<input type="text" name="last_name" placeholder="Введите фамилию">
			</legend>
			<legend>Почта
				<input type="email" name="email" placeholder="Введите почту">
			</legend>
			<legend>Пароль
				<input type="password" name="password" placeholder="Введите пароль">
			</legend>
			<legend>Повторите пароль
				<input type="re_password" name="re_password" placeholder="Введите парольеще раз">
			</legend>
			<legend>Город
				<select>
					<option>--Выберите город--</option>
					<option>Москва</option>
					<option>Санкт-Петербург</option>
				</select>
			</legend>
				<input type="radio" id="famele" name="pol">
				<label for="famele">Мужской</label>
				
				<input type="radio" id="mele" name="pol">
				<label for="famele">Женский</label>
			<input type="submit">
		</fieldset>
	</form>
</body>

</html>
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
@hurgadan
А вы что хотели сделать? Не отправлять форму если не выбрать город? Если да, то вы что там нагородили ...
Отправка формы происходит при клике на input type="submit". Соответственно вам и нужно обрабатывать событие клика на эту кнопку. Событие change для вообще не нужно, от него не зависит отправка формы, если я правильно понял то что вы хотели сделать.
https://jsfiddle.net/02kne0da/
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
larisamoroz
@larisamoroz
Курю маны, втыкаю в код, ваяю, починяю.
1. Вот этот кусок кода блокирует отправку формы навсегда, вне зависимости от последующих изменений вашего select-а:
if($('select :selected').val() == '--Выберите город--'){
    $('input[type="submit"]').click(function(evt){
          evt.preventDefault();
    });
}


2. До того. как пользователь прикоснётся к этому select-у отправка формы НЕ будет заблокирована.

Вам надо наоборот, перед отправкой формы проверять значение selecta и если там ничего не выбрано, то однократно блокировать отправку
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
if($('select :selected').val() == '--Выберите город--'){

ну и сделайте консоле.лог этого селекта валуе. Неужели так трудно посмотреть что и на каком этапе пошло не так?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы