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

В данной теме показаны примеры на jQuery для показа ранее скрытых блоков при выбранном значении radio, checkbox и select

Обратите внимание: все стили кнопок в данных примерах - это стили сайта и в примерах их нет

Вывод блока при изменении RADIO

Для кнопок radio может быть выбрано только одно значение. Соотв. при изменении выбора мы прячем все блоки и показываем блок с ID равным значению value кнопки.

Если нет возможности привязать блок к value, например, если оно несет в себе много текстовой информации, можно по аналогии использовать любой data-атрибут.

Вывод блока при изменении CHECKBOX

С кнопками checkbox может быть масса различных вариантов, например, показать блок при выбранных 2-х конкретных или сделать одни неактивными, когда выбраны другие и т.д.

В примере сделано как и в предыдущем варианте, а именно, активный чекбокс = показанный блок с его значением value

Вывод блока при изменении SELECT

Вариант практически точно такой же, как с кнопками radio.

Смотрите также:

Плагин для jQuery, позволяющий создавать различные маски для ввода числовых и буквенных данных

Небольшой скрипт на jQuery реализующий поиск и фильтрацию контента по буквам

Правильное отображение капчи reCAPTCHA на малых экранах и в узких блоках

Добавить комментарий:

Ваш комментарий отправлен!

Комментарии:

  • Екатерина:

    Добрый день!
    А если это данные из imput?

    Ответить
      • Екатерина:

        Да понимаю, спасибо за ответ!
        Но интересует именно показ элементов в зависимости от введенного пользователем числа, например

        Ответить
        • Alexander:

          Точно также, только value будет браться из введенных данных.
          Вопрос только зачем такая конструкция? Нажать всегда проще, чем писать (10-20 кнопок с цифрами уместятся где угодно).
          А если у нас 50 вариантов и делать 50 скрытых блоков, то тоже что-то не так с конструкцией....

          Ответить
          • Екатерина:

            Мне нужно показать/скрыть информацию для пользователя, в зависимости от введенного им возраста ) Тут уместнее как раз запросить.

            Ответить
            • Alexander:

              И для каждого года будет свой скрытый блок?
              Для 45 лет один, а для 46 другой?
              1 - Если нет, то вполне подойдет селект по группам (до 18, 18-25 и т.д.)
              2 - Если нет, но группировать не нужно, то тоже подойдет селекст (выпадайка на 50 пунктов вполне нормально будет) с нужными значениями показываемых блоков.
              3 - Если да, то тоже пункт 2, только с разными значениями для каждого года.

              А если таки только текстовый, то все точно также, как в радио

              $(".yearinput").change(function(){ // Событие изменения инпута с классом yearinput
              	$(".year-blocks").hide(); // Прячем все блоки с классом year-blocks
              	$("#year" + $(this).val()).show(); // Показываем блок с ID #year50, если введено 50
              });

              Плюс сюда лучше добавить ограничения на ввод (убрать буквы и символы и числа под 1000)
              А если нужно таки показывать блоки по группам (до 18, 18-25 и т.д.), то добавлять еще условия, при каких значениях что показывать.
              Тут можете пример посмотреть

              Ответить
            • Alexander:

              И соотв. HTML

              <input type="text" class="yearinput">
              <div class="year-blocks" id="year10">написали 10</div>
              <div class="year-blocks" id="year50">написали 50</div>
              Ответить
              • Екатерина:

                Огромное Вам спасибо!!!
                Последний вопрос ) если один блок подходит под несколько условий?

              • Екатерина:

                Придумала! Снят вопрос! Еще раз спасибо!!!

  • Александр:

    как подключить jquery?

    Ответить
    • Alexander:

      Подключается как и любой скрипт, со своего сайта или с CDN
      Только если у вас на сайте он не подключен, можно поискать решение на чистом JS для этого.

      Ответить
  • Михаил:

    Есть вариант с кнопками?

    Ответить