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

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

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

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

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

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

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

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

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

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

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

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

jQuery плагин radios-to-slider для создания слайдера из radio кнопок

Два варианта рейтинга со звездочками по 5-ти и 10-ти бальной шкале

Замена атрибута placeholder тегом label и последующая манипуляция им

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

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

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

  • Екатерина:

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

    Ответить
    • Alexander:

      Это и есть [b]input[/b]'ы

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

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

        Ответить
        • Alexander:

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

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

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

            Ответить
            • Alexander:

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

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

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

              Плюс сюда лучше добавить ограничения на ввод (убрать буквы и символы и числа под 1000)
              А если нужно таки показывать блоки по группам (до 18, 18-25 и т.д.), то добавлять еще условия, при каких значениях что показывать.
              [url="https://atuin.ru/blog/plyus-i-minus-dlya-polya-input/"]Тут можете пример посмотреть[/url]

              Ответить
            • Alexander:

              И соотв. HTML
              [code]<input type="text" class="yearinput">
              <div class="year-blocks" id="year10">написали 10</div>
              <div class="year-blocks" id="year50">написали 50</div>[/code]

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

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

              • Екатерина:

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

  • Александр:

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

    Ответить
    • Alexander:

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

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

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

    Ответить
    • Alexander:

      Это или табы или просто кнопки, например:
      [url="https://atuin.ru/blog/otkrytie-i-zakrytie-kontenta-na-jquery/"]Открытие и закрытие контента[/url]
      [url="https://atuin.ru/blog/adaptivnye-vkladki-opentabby/"]Вкладки openTabby[/url]
      [url="https://atuin.ru/blog/gorizontalnye-vkladki-s-animaciej/"]Горизонтальные вкладки[/url]
      Или просто на бутстрапе

      Ответить