Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как осуществить валидацию только выбранных полей формы? (https://javascript.ru/forum/jquery/15208-kak-osushhestvit-validaciyu-tolko-vybrannykh-polejj-formy.html)

Tomas 17.02.2011 11:05

Как осуществить валидацию только выбранных полей формы?
 
Всем привет!

Передо мной стоит необычная задача по валидации маленькой формы

на этой форме всего 4 текстовых поля и 4 флажка.



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


Весь день вчера потратил на освоение JQuery и сегодня пол дня, научился делать обычную валидацию, как в большинстве примеров. Но нигде не нашёл примера выборочной валидации.

Пробовал искать примеры конкретно по checkbox но опять же, они во всех примерах валидируются сами по себе, и не оказывают влияния на валидацию других элементов формы.

walik 17.02.2011 11:41

Ну как вариант, при смене чекбокса, меняешь и поле input.
К примеру так:
<form onsubmit="checkForm(); return false;" id="myForm">
<input type="checkbox" onchange="(this.checked) ? $('#input_1').removeAttr('disabled') : $('#input_1').attr('disabled', 'disabled');" /> Флажок №1  <input type="text" id="input_1" disabled /><br />
<input type="checkbox" onchange="(this.checked) ? $('#input_2').removeAttr('disabled') : $('#input_2').attr('disabled', 'disabled');" /> Флажок №2  <input type="text" id="input_2" disabled /><br />
<input type="checkbox" onchange="(this.checked) ? $('#input_3').removeAttr('disabled') : $('#input_3').attr('disabled', 'disabled');" /> Флажок №3  <input type="text" id="input_3" disabled /><br />
<input type="checkbox" onchange="(this.checked) ? $('#input_4').removeAttr('disabled') : $('#input_4').attr('disabled', 'disabled');" /> Флажок №4  <input type="text" id="input_4" disabled /><br />
<input type="submit" />
</form>


Ну а в функции checkForm уже, пробегаешь по всем полям input и у которых disabled равно false делаешь валидацию.
К примеру так:
function checkForm() {
	$("#myForm input[type=text]").each(function() {
		if (this.disabled == false)
			checkInput(this.id);
	});
}


В функции checkInput делаешь валидацию поля

Tomas 18.02.2011 06:44

Спасибо огромное walik !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


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