Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Перехват клика по radio и обнуленее checked (https://javascript.ru/forum/dom-window/69528-perekhvat-klika-po-radio-i-obnulenee-checked.html)

wel89 30.06.2017 20:41

Перехват клика по radio и обнуленее checked
 
Добрый вечер знатоки JS+JQwery как написано когда создаеш тему""Помогите!""Я нуб, нужен совет"" все это про меня. Эсть уменя три блока сделал "табом"
<div id="wr-tabs">
<div class="tabs">
<div class="tab active">
<input id="package_type-DEFAULT" name="PACKAGE_TYPE" value="DEFAULT" checked="checked" type="radio">
<label for="package_type-DEFAULT">Упаковка и лента на усмотрение флориста</label>
</div>
<div class="tab">
<div class="tab">
</div>
<div class="content">
<div class="tab-cont active">
<div class="tab-cont">
<div class="col col-lg-4 text--center hidden--sm hidden--xs hidden--md">
<div class="col col-lg-8">
<h3>
<ul class="list--inline packageType">
<li>
<li>
<li>
<li>
</ul>
</div>
<div class="cardDesc-package__item1 text--left packages" style="display: block;">
<div class="col col-lg-8">
</div>
<div class="tab-cont">

jQuery(document).ready(function($) {

	$("#wr-tabs").on("click", ".tab", function(){

		var tabs = $("#wr-tabs .tab"),
			cont = $("#wr-tabs .tab-cont");

		// Удаляем классы active
		tabs.removeClass("active");
		cont.removeClass("active");
		// Добавляем классы active
		$(this).addClass("active");
		cont.eq($(this).index()).addClass("active");

		return false;
	});
});

Помогите знатоки. Нет времени в связи с "petya".
Хотелось бы что б когда один с табов был активный то все остальные radio c checked Ставили без checked.:cray:

рони 30.06.2017 21:14

Цитата:

Сообщение от wel89
все остальные radio c checked

если вёрстка правильная и все radio с одним name="PACKAGE_TYPE" то скрипт дополнять не нужно
а так
строка 7
$("input", this).prop({checked : true})

wel89 30.06.2017 21:17

Цитата:

Сообщение от Rise (Сообщение 457073)
Где написано, какой петя, ты что там покурил вася?

Вирус petya если слышели о таком. Все время забирает основная работа. А я нуб но стараюсь розбраться всегда. Но голова не варит сейчас а время идет.

wel89 30.06.2017 21:22

Цитата:

Сообщение от рони (Сообщение 457075)
если вёрстка правильная и все radio с одним name="PACKAGE_TYPE" то скрипт дополнять не нужно
а так
строка 7
$("input", this).prop({checked : true})

Верстка не правильная, имена разные. Вставил Вашу строчку не заработало.

wel89 30.06.2017 21:23

Вот пример кода
<li>
<div class="package_material">
<div class="radio">
<input id="jshop_attr_id23" name="jshop_attr_id[2]" value="3" checked="checked" onclick="setAttrValue('2', this.value);" type="radio">
<label for="jshop_attr_id23">
<img src="http://shop-tea.com.ua.s3.hhos.ru/components/com_jshopping/files/img_attributes/net.png" alt="">
Нет
</label>
</div>
</div>
</li>
<li>
<div class="package_material">
<div class="radio">
<input id="jshop_attr_id24" name="jshop_attr_id[2]" value="4" onclick="setAttrValue('2', this.value);" type="radio">
<label for="jshop_attr_id24">
</div>
</div>
</li>

рони 30.06.2017 21:25

wel89,
тогда так строка 7
$("input", tabs).prop({checked : false});
     $("input", this).prop({checked : true});

рони 30.06.2017 21:27

Цитата:

Сообщение от wel89
Вот пример кода

пас, не понимаю структуру вашего html и что вам нужно, помочь не могу.

wel89 30.06.2017 21:36

Цитата:

Сообщение от рони (Сообщение 457080)
пас, не понимаю структуру вашего html и что вам нужно, помочь не могу.

Сейчал выложу код полностю помогите пож...
<div class="radio-block_inner">
<div id="wr-tabs">
<div class="tabs">
<div class="tab">
<div class="tab active">
<input id="package_type-USER" name="PACKAGE_TYPE" value="USER" type="radio">
<label for="package_type-USER">Подобрать самостоятельно</label>
</div>
<div class="tab">
</div>
<div class="content">
<div class="tab-cont">
<div class="tab-cont active">
<div class="col col-lg-4 text--center hidden--sm hidden--xs hidden--md">
<div class="col col-lg-8">
<h3>
<ul class="list--inline packageType">
<li>
<div class="package_material">
<div class="radio">
<input id="jshop_attr_id23" name="jshop_attr_id[2]" value="3" checked="checked" onclick="setAttrValue('2', this.value);" type="radio">
<label for="jshop_attr_id23">
<img src="http://shop-tea.com.ua.s3.hhos.ru/components/com_jshopping/files/img_attributes/net.png" alt="">
Нет
</label>
</div>
</div>
</li>
<li>
<li>
<li>
</ul>
</div>
<div class="cardDesc-package__item1 text--left packages" style="display: block;">
<div class="col col-lg-8">
</div>
<div class="tab-cont">
<div class="clearfix"></div>

Надо что б когда 1 с "tab-cont active" был активним то не активные tab-cont и их внутрянка к примеру "<input id="jshop_attr_id23" name="jshop_attr_id[2]" value="3" checked="checked" onclick="setAttrValue('2', this.value);" type="radio">" ставала не активная.
:cray: :(

рони 30.06.2017 21:41

wel89,
не понимаю ничего

wel89 30.06.2017 21:52

Цитата:

Сообщение от Rise (Сообщение 457083)
Вирусы-шифровальщики существуют уже много лет и это не новость например.

Ето Вам ссылка http://24tv.ua/ru/virus_petya_a_hakerskaja_ataka_ukraina_kak_rabotae t_virus_petja_i_chto_delat_n835085

wel89 30.06.2017 21:53

Цитата:

Сообщение от рони (Сообщение 457082)
wel89,
не понимаю ничего

Могу ссылку на сайт дать посмотрите??

wel89 30.06.2017 22:06

Цитата:

Сообщение от Rise (Сообщение 457086)
И что? В новостях написали и ты сразу засуетился что-ли? Оттуда:

Американские ураганы тоже по разному называют и по новостям обсуждают периодически, но от этого они не перестают быть ураганами.

Извените, но забудьтесь.)Не вижу смысла продолжать етот розговор)))С Вами)

j0hnik 30.06.2017 22:06

Цитата:

Сообщение от wel89 (Сообщение 457072)
Хотелось бы что б когда один с табов был активный то все остальные radio c checked Ставили без checked.:cray:

if($('div').hasClass('active')) $('input[type="radio"]').prop('checked', false);

тоже с трудом понимаю вашу конструкцию, вот код который убирает чекед, сами попробуйте приладить с каких надо убирать.

рони 30.06.2017 22:07

wel89,
посмотрел, но я пока не знаю какая у вас проблема.
максимально просто можно обьяснить, что не так?

wel89 30.06.2017 22:14

Цитата:

Сообщение от рони (Сообщение 457089)
wel89,
посмотрел, но я пока не знаю какая у вас проблема.
максимально просто можно обьяснить, что не так?

Надо когда на блок нет становишся все что выбрал в других блоках перескакивало как я их не выберал.

j0hnik 30.06.2017 22:15

Цитата:

Сообщение от wel89 (Сообщение 457090)
Надо когда на блок нет становишся все что выбрал в других блоках перескакивало как я их не выберал.

да это ерунда, так бы сразу и сказали, сейчас Рони все починит! он мастер у нас :yes:

wel89 30.06.2017 22:22

Цитата:

Сообщение от j0hnik (Сообщение 457091)
да это ерунда, так бы сразу и сказали, сейчас Рони все починит! он мастер у нас :yes:

Спасибо Вам ребят.

j0hnik 30.06.2017 22:32

Цитата:

Сообщение от wel89 (Сообщение 457092)
Спасибо Вам ребят.

Что с вирусами, подхватил заразу какую-то?

рони 30.06.2017 22:50

Цитата:

Сообщение от j0hnik
да это ерунда

:-?

рони 30.06.2017 23:06

wel89,
строка 7
$("li", cont).parent().find("input:first").click();

...

wel89 01.07.2017 20:19

Цитата:

Сообщение от j0hnik (Сообщение 457094)
Что с вирусами, подхватил заразу какую-то?

Работаю на предприятии у нас придела 200+ компов все упали + сервера в результате вируса этого, вот подымаем сутками.

wel89 01.07.2017 20:20

Цитата:

Сообщение от рони (Сообщение 457097)
wel89,
строка 7
$("li", cont).parent().find("input:first").click();

...

Извени вчера прилег и уснул())Просто вставить эту строчку?

рони 01.07.2017 20:51

Цитата:

Сообщение от wel89
Просто вставить эту строчку?

да, только её в код из поста №1

wel89 01.07.2017 21:00

Цитата:

Сообщение от рони (Сообщение 457152)
да, только её в код из поста №1

Супер работает. Спасибо большущее))А можно еще понаглеть немного?:(

рони 01.07.2017 21:07

wel89,
пишите, но ваша вёрстка не айс.

wel89 01.07.2017 21:14

Можно как то перехвачивать сумы которые добавляються до основной и выводить ее в переменной отдельно?К примеру когда в меню Материал упаковки: выбрать Флизелин добавляться 150 и что б отдельно в переменной выводилось тоже 150 в другом месте?

рони 01.07.2017 22:09

wel89,
этот ужас добавить в строку 2 в код из поста №1.
jQuery("#wr-tabs .package_price").each(function(indx, el) {
    var parent = jQuery(el).parentsUntil(".tab-cont").last().next();
    var label = jQuery("label", parent),
        inp = jQuery("input", parent);
    inp.each(function(indx, elem) {
        var text = label.eq(indx).text().match(/\d+/);
        text = text ? text[0] : "0";
        jQuery(elem).on("click", function() {
            jQuery(el).text(text)
        })
    })
});

wel89 01.07.2017 22:25

Цитата:

Сообщение от рони (Сообщение 457158)
wel89,
этот ужас добавить в строку 2 в код из поста №1.
jQuery("#wr-tabs .package_price").each(function(indx, el) {
    var parent = jQuery(el).parentsUntil(".tab-cont").last().next();
    var label = jQuery("label", parent),
        inp = jQuery("input", parent);
    inp.each(function(indx, elem) {
        var text = label.eq(indx).text().match(/\d+/);
        text = text ? text[0] : "0";
        jQuery(elem).on("click", function() {
            jQuery(el).text(text)
        })
    })
});

Вы мой кумир))Долго JS изучаете?

wel89 01.07.2017 22:26

Ещо б как то суму брало с "Цена за шт. с упаковкой, лентой и дополнениями"

и писало в

Итого цена

wel89 01.07.2017 22:30

рони,
Спасибо Вам, Вы спасли меня от недельной каторги в розберанни данного кода))

рони 01.07.2017 22:30

wel89,
пас, далее сами

wel89 01.07.2017 22:34

Цитата:

Сообщение от рони (Сообщение 457168)
wel89,
пас, далее сами

Спасибо Вам за это. Вы ГУРУ JS)


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