Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Валидация формы (https://javascript.ru/forum/dom-window/29775-validaciya-formy.html)

Ваяс 10.07.2012 20:08

Валидация формы
 
$(document).ready(function() {	
	$('#first_name').keyup(validFirstName).focusout(validFirstName).bind('paste', validPass);	
function validFirstName(){
		var first_name = $('#first_name').val();
		var validString;		
		var nameReg = /^[a-zA-Zа-яА-Я]+$/;
		if(first_name == ''){
			$('#first_name_result').removeClass().addClass('short');
			validString = notfieldString;
			var ret = 1;	
		} else if (!first_name.match(nameReg)){
			$('#first_name_result').removeClass().addClass('short');
			validString = firstnameString.error;
			var ret = 1;	
		} else {
			$('#first_name_result').removeClass().addClass('good');
			validString = firstnameString.ok;
		}
		$('#first_name_result').html(validString);
	}
});


Вот есть такая валидация формы, как сделать так, что бы нельзя было отправить эту форму, разумеется функция не одна которая проверяет данные
<form id="registration"method='post' action=''>
	<table align="center">	
	<tr>
		<td><label for="first_name">Имя</label></td>
		<td><input type='text' id='first_name' class='text' name='first_name' /></td>
		<td class="result"><span id="first_name_result"></span></td>
	</tr>
<tr>
		<td></td>
		<td><input  name='ok' type='submit' value='<?=FORM_REGISTRATION_REG_NOW;?>' /></td>
	</tr>	
	</table>	
</form>

lord2kim 10.07.2012 20:17

попробуйте поставить на submit формы
return false;

Ваяс 10.07.2012 20:20

И чем же это поможет ведь у нас функция всегда true возвращает, а если она будет возвращать false то текст не будет выводиться ( не заполненно поле ну и т.д.)

lord2kim 10.07.2012 20:31

Цитата:

Сообщение от Ваяс (Сообщение 187846)
И чем же это поможет ведь у нас функция всегда true возвращает, а если она будет возвращать false то текст не будет выводиться ( не заполненно поле ну и т.д.)

возможно я вас не правильно понял, но из первого сообщения вижу только 1 вопрос
Цитата:

как сделать так, что бы нельзя было отправить эту форму

Ваяс 10.07.2012 20:38

Прошу прощение, это моя вина.. Попробую еще раз.
Как сделать так что бы когда проверялась функция и заходила в else
т.е. возвращала validString = firstnameString.ok;
firstnameString.ok это константа строковая, ТОЛЬКО ТОГДА можно было отправить форму

lord2kim 10.07.2012 21:14

Цитата:

Сообщение от Ваяс (Сообщение 187852)
Прошу прощение, это моя вина.. Попробую еще раз.
Как сделать так что бы когда проверялась функция и заходила в else
т.е. возвращала validString = firstnameString.ok;
firstnameString.ok это константа строковая, ТОЛЬКО ТОГДА можно было отправить форму

ну на submit формы вешайте эту функцию и по окончанию проверки, в зависимости от переменной validString (наверное) выполняйте submit формы (что первое пришло в голову...)

Ваяс 11.07.2012 09:54

((( увы но так не получиться ведь функций таких много, и все их нужно проверить

lord2kim 11.07.2012 11:39

Цитата:

Сообщение от Ваяс (Сообщение 187987)
((( увы но так не получиться ведь функций таких много, и все их нужно проверить

как вариант, возможно и чушь, но...напишите еще одну функцию, которую повесите на submit, а в ней по одно вызывайте требуемые функции проверки...если что то вернуло, например, false, то завязываем с дальнейшей проверкой и отправкой и говорим об этом пользователю...

Ваяс 11.07.2012 15:20

Нет не чушь, именно так все и получилось.
Спасибо за помощь


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