Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2017, 05:26
Аспирант
Отправить личное сообщение для Anushki Посмотреть профиль Найти все сообщения от Anushki
 
Регистрация: 07.11.2017
Сообщений: 43

Как сделать условную валидацию полей
Всем привет ребят. Подскажите пожалуйста.

Есть форма:
<form>
<ul class="tab">
<li class="fiz" for="fiz">
<input type="radio" name="who" id="fiz" value="fiz"> Физическое лицо
</li>
<li class="iur" for="iur">
<input type="radio" name="who" id="iur" value="iur"> Юридическое лицо
</li>
</ul>
<fieldset id="fiz">
<input type="text" name="" placeholder="ФИО">
<input type="text" name="" placeholder="Адрес">
<input type="text" name="" placeholder="Должность">
</fieldset>
<fieldset id="iur">
<input type="text" name="" placeholder="ФИО">
<input type="text" name="" placeholder="Регистрационный номер">
<input type="text" name="" placeholder="Название организации">
</fieldset>
</form>


Как сделать условную валидацию? Чтобы например при выборе radio физ лица, поля с radio юр лица не были обязательными к заполнению? И наоборот...

Буду вам очень признательна..

Последний раз редактировалось Anushki, 29.11.2017 в 05:32.
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2017, 06:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

На jQuery можно так:

<html>
<head>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<style>
div[class|=group] {
    display: none;
}
</style>
<script type="text/javascript">
$(function() {
    var fields = $('fieldset');
    $('.tab input').change(function() {
        fields.eq(this.value).show().children().prop('required', 1);
        fields.eq(this.value ^ 1).hide().children().prop('required', 0); 
    });
});
</script>
</head>
<body>
<form>
    <ul class="tab">
    <li class="fiz">
        <input type="radio" name="who" value="0" checked=""> Физическое лицо
    </li>
    <li class="iur">
        <input type="radio" name="who" value="1"> Юридическое лицо
    </li>
    </ul>
    <fieldset>
        <input type="text" name="" required="" placeholder="ФИО">
        <input type="text" name="" required="" placeholder="Адрес">
        <input type="text" name="" required="" placeholder="Должность">
    </fieldset>
    <fieldset style="display: none;">
        <input type="text" name="" placeholder="ФИО">
        <input type="text" name="" placeholder="Регистрационный номер">
        <input type="text" name="" placeholder="Название организации">
    </fieldset>
</form>
</body>
</html>


LI не имеют атрибута for, это у label "для ...".
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2017, 13:44
Аспирант
Отправить личное сообщение для Anushki Посмотреть профиль Найти все сообщения от Anushki
 
Регистрация: 07.11.2017
Сообщений: 43

Сообщение от laimas Посмотреть сообщение
На jQuery можно так:
Спасибо большое laimas очень тебе благодарна. выручил
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ajax. Как сделать загрузку изображений, отображение, удаление как на Авито wowtschuk AJAX и COMET 1 07.03.2017 01:34
Акардион меню из чекбоксов и списка, как сделать подсветку текущего элемента OliLoi jQuery 0 08.11.2016 08:15
Как убрать hover? Либо как сделать стрелки статичными? krusty36 Элементы интерфейса 1 13.07.2011 09:20
Как осуществить валидацию только выбранных полей формы? Tomas jQuery 2 18.02.2011 06:44
Как сделать постоянную проверку на javascript alb Общие вопросы Javascript 18 09.01.2010 14:05