Показать сообщение отдельно
  #1 (permalink)  
Старый 04.10.2017, 17:12
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Как реализовать предвыбор селекта в видоизмененном инпуте
Всем привет!

Есть 10 блоков.
В каждом блоке есть кнопка на открытие формы.
В форме есть видоизмененный input select c 10 вариантами.

Нужно чтобы при клике по блоку 1 - в форме подставлялся сразу вариант 1 в селекте.

В каждом блоке для ссылки могу прописать разные значения onclick, не соображу какие.

С простым селектом я знаю как сделать. А вот с этим не понимаю...

Вот так выглядит селект и скрипт отвечающий за его работу.

<div class="select">
    <a href="javascript:void(0);" class="slct">Выберите тип гарантии</a>
    <ul class="drop">
        <li><a href="#">Гарантия по 223-ФЗ</a></li>
        <li><a href="#">Гарантия по 44-ФЗ</a></li>
        <li><a href="#">По госконтракту</a></li>
        <li><a href="#">На возврат НДС</a></li>
        <li><a href="#">Для закрытых конкурсов и аукционов</a></li>
        <li><a href="#">Для страховых компаний</a></li>
        <li><a href="#">На акциз</a></li>
        <li><a href="#">Для коммерческих компаний</a></li>
        <li><a href="#">Таможенные гарантии</a></li>
        <li><a href="#">Туристические гарантии</a></li>
    </ul>
    <input type="hidden" id="select" />
</div>


// Select
$('.slct').click(function(){
    /* Заносим выпадающий список в переменную */
    var dropBlock = $(this).parent().find('.drop');

    /* Делаем проверку: Если выпадающий блок скрыт то делаем его видимым*/
    if( dropBlock.is(':hidden') ) {
        dropBlock.slideDown();

        /* Выделяем ссылку открывающую select */
        $(this).addClass('active');

        /* Работаем с событием клика по элементам выпадающего списка */
        $('.drop').find('li').click(function(){

            /* Заносим в переменную HTML код элемента
            списка по которому кликнули */
            var selectResult = $(this).html();

            /* Находим наш скрытый инпут и передаем в него
            значение из переменной selectResult */
            $(this).parent().parent().find('input').val(selectResult);

            /* Передаем значение переменной selectResult в ссылку которая
            открывает наш выпадающий список и удаляем активность */
            $(this).parent().parent().find('.slct').removeClass('active').html(selectResult);

            /* Скрываем выпадающий блок */
            dropBlock.slideUp();
        });

    /* Продолжаем проверку: Если выпадающий блок не скрыт то скрываем его */
    } else {
        $(this).removeClass('active');
        dropBlock.slideUp();
    }

    /* Предотвращаем обычное поведение ссылки при клике */
    return false;
});

Последний раз редактировалось the_little, 04.10.2017 в 21:43.
Ответить с цитированием