Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запрет отправки формы. (https://javascript.ru/forum/misc/41393-zapret-otpravki-formy.html)

Garroshek 11.09.2013 22:31

Запрет отправки формы.
 
Вечер добрый.
Есть задача: проверить поля формы, заполнены ли они.
<script>
		function ver(){
			var name = $('input#user_name').attr('value');
			var phone = $('input#phone').attr('value');
			var mail = $('input#mail').attr('value');

				if (name == '') { 
					alert('Поле "Имя" не заполнено');
					return false
				};
				
				if (phone == '') { 
					alert('Поле "Телефон" не заполнено');
					return false
				};
				
				if (mail == '') { 
					alert('Поле "E-mail" не заполнено');
					return false
				};

				
				if ((name !=='') &#38;&#38; (phone !== '') &#38;&#38; (mail !== '')) {
					$('.newsletter').submit();
				};

			};
		</script>


<form enctype="multipart/form-data" method="post" action="/webforms/send/"  onsubmit="return false">					
<input type="submit" class="submit button_order_check"  value="Рассчитать" />	
</form>


Поля проверяет, но если они все заполнены, отправка не идёт. В чем моя ошибка?

Arramis 11.09.2013 22:40

подправить
onsubmit="return false"

на
onsubmit="ver()"

Garroshek 11.09.2013 22:53

Не работает. К сожалению.
<form enctype="multipart/form-data" method="post" action="/webforms/send/">				
<input type="button" onclick="ver()" class="submit button_order_check"  value="Рассчитать" />	
</form>


Поменял type="submit" на button, теперь форма проверяется, но отправляется в любом случае, соблюдено условие или нет.

рони 12.09.2013 00:04

Garroshek,
функция ver должна возвращать true или false -- тогда
onsubmit="return ver()"

Garroshek 12.09.2013 00:40

Проблема была решена.

<input type="button" onclick="ver()" class="submit button_order_check"  value="Рассчитать" />


<script>
		function ver(){
			var name = $('input#user_name').attr('value');
			var phone = $('input#phone').attr('value');
			var mail = $('input#mail').attr('value');
			var flag = 0;
				if (name == '') { 
					alert('Поле "Имя" не заполнено');
					flag = 0;
				}
				
				if (phone == '') { 
					alert('Поле "Телефон" не заполнено');
					flag = 0;
				}
				
				if (mail == '') { 
					alert('Поле "E-mail" не заполнено');
					flag = 0;
				}

				if ((name !== '') &#38;&#38; (phone !== '') &#38;&#38; (mail !== '')) {
					flag = 1;
				}
				
				if(flag == 1) {
					$('.form_order_check').submit();
				};
				
			};
		</script>


Всем спасибо!

danik.js 12.09.2013 06:29

Цитата:

Сообщение от Garroshek
Проблема была решена.

Не решена. Отключи JS и убедись в этом :)
Сделай как предложил ]рони[/b]
Укажи атрибуты для валидации:
<input type="email" required="" />

Для не-html5 браузеров используй либо свой скрипт либо подключи какой-нибудь костыль


Часовой пояс GMT +3, время: 15:36.