Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   При клике по ссылке имитировать нажатие на другую ссылку (https://javascript.ru/forum/misc/70817-pri-klike-po-ssylke-imitirovat-nazhatie-na-druguyu-ssylku.html)

the_little 04.10.2017 17:12

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

Есть 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;
});

ksa 05.10.2017 09:10

Цитата:

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

Вешай на тот блок обработчик клика...
При клике берешь значение первого элемента...
Находишь куда писать и записываешь тот значение.

Вот вроде и все.


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