d0ublezer0

установить значение radio button

Recommended Posts

привет.

есть набор радио кнопок, по изменению которых срабатывает некая функция

 $('body').on("change", "[name='virtuemart_shipmentmethod_id']", function (e) {
        update_infoboxes();
    });

возникла задача менять выбранную радио кнопку по внешнему событию? допустим клик на переключалке табов
нужно установить правильное значение и чтобы сработало событие change

как правильно сделать?

пробовал так:

    $('body').on("click", "#shipment_type_selector li", function (e) {
        e.preventDefault();
        var $set_mode = $(this).data("ship-mode");
        $('#shipment_type_selector li').removeClass("active");
        $(this).addClass("active");
        $("#onepage_main_div").removeClass("_self-pickup _tk-delivery").addClass("_" + $set_mode);
        if ($set_mode=="tk-delivery") $("#shipment_id_2").prop("checked",true); // выберем транспортную компанию
        if ($set_mode=="self-pickup") $("#shipment_id_1").prop("checked",true); // выберем самовывоз
    });

но не вышло: визуально выбор radio кнопки не меняется. событие change не срабатывает

вот собрал на коленке для проверок.

https://jsfiddle.net/5pa9fj1o/1/

изначально выбран первый пункт

после переключения на транспортную выбирается второй, как и должно быть

а дальше ничего не происходит, хоть обпереключайся

 

Share this post


Link to post
Share on other sites

не понятно для чего такие сложности и что именно вам требуется
могу предложить такой вариант:
https://jsfiddle.net/tq2dpon7/
но не уверен, что именно это вам нужно

Share this post


Link to post
Share on other sites

Не совсем то.

Я покажу на реальном примере https://www.zebra-tara.ru/

положите любой товар в корзину

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

У меня задача разделить их на два списка, отображаемые по состоянию табов.

При этом - выбирать некое значение в списке при переключении табов.

 

P/S/ а с инпутами вместо списка вы правильно предложили,  переделаю.

Edited by d0ublezer0

Share this post


Link to post
Share on other sites

Увы, нет возможности разделить содержимое табов на два блока. Список подходящих способов доставки формируется отдельным компонентом, основываясь на адресе получателя. У меня придумалось только скрывать неподходящее по типу при переключении "табов".

По факту, табами это не является. Просто переключалка, скрывающая часть опций одного списка. И после переключения нужно выбрать первый видимый элемент.

Я пробовал насылать событие клика на инпуты, пробовал ставить им значение через val() и потом вызывать событие change

но ничего так и не вышло, значения не меняются

Edited by d0ublezer0

Share this post


Link to post
Share on other sites
23 часа назад, Switch74 сказал:

не понятно для чего такие сложности и что именно вам требуется
могу предложить такой вариант:
https://jsfiddle.net/tq2dpon7/
но не уверен, что именно это вам нужно

Ваш метод подошёл отлично, спасибо. Не понимаю, почему у меня не работало.

Share this post


Link to post
Share on other sites

если вы для вариантов сделаете какие-то отметки, например установите классы для самовывоза и доставки, то можно будет скрывать не нужные

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Member Statistics

    46,330
    Total Members
    3,128
    Most Online
    TimofejUS
    Newest Member
    TimofejUS
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.