2014-11-23 5 views
0

У меня есть дом, как в следующемВыберите ближайший вход радио

<input type="radio" name="day_time[]" class="pickup-location-day" value="Sunday"> Sunday 
<input type="radio" name="pickup_time[]" class="pickup-location-time" value="02:00am"> 02:00am 
<input type="radio" name="pickup_time[]" class="pickup-location-time" value="02:30am"> 02:30am 
<input type="radio" name="pickup_time[]" class="pickup-location-time" value="05:30am"> 05:30am<br> 

    <input type="radio" name="day_time[]" class="pickup-location-day" value="Sunday"> Monday 
<input type="radio" name="pickup_time[]" class="pickup-location-time" value="02:00am"> 02:00am 
<input type="radio" name="pickup_time[]" class="pickup-location-time" value="02:30am"> 02:30am 
<input type="radio" name="pickup_time[]" class="pickup-location-time" value="05:30am"> 05:30am<br> 

etc .... 

я хочу связать, когда выберите .pickup-location-time с первым .pickup-location-day, например, когда пользователь выберите .pickup-location-time ближайший «.pickup-местоположение-день» должен также выбран.

обратите внимание, что я использовал следующий

$('.pickup-location-time').on('change', function() { 
    $(this).closest('.pickup-location-time').prop('checked', true); 
}) 

, но это не могло

enter image description here

+1

взгляд в JQuery API на то, что 'ближайший()' используется. Найди, что он не делает то, что вам нужно, если ваши радиооболочки не обернуты элементами групп. – charlietfl

ответ

0

Использование prev()

$(this).prev('.pickup-location-day').prop('checked', true); 

Обязательно выберите .pickup-location-day.

0

Вы правы, .closest() делает что-то совсем другое.

Если вы контролируете структуру документа, почему бы вам просто не использовать $(this).next('.pickup-location-time'), так как это всегда следующий элемент, который вы хотите выбрать?

1

Оберните радиостанции в группы, чтобы вы могли проходить в пределах определенной группы. Это упрощает изолируя экземпляры

<div class="radio-group"> 
    <input type="radio" name="day_time[]" class="pickup-location-day" value="Sunday">Sunday 
    <input type="radio" name="pickup_time[]" class="pickup-location-time" value="02:00am">02:00am 
    <input type="radio" name="pickup_time[]" class="pickup-location-time" value="02:30am">02:30am 
    <input type="radio" name="pickup_time[]" class="pickup-location-time" value="05:30am">05:30am  
</div> 
<div class="radio-group"> 
    <input type="radio" name="day_time[]" class="pickup-location-day" value="Sunday">Monday 
    <input type="radio" name="pickup_time[]" class="pickup-location-time" value="02:00am">02:00am 
    <input type="radio" name="pickup_time[]" class="pickup-location-time" value="02:30am">02:30am 
    <input type="radio" name="pickup_time[]" class="pickup-location-time" value="05:30am">05:30am  
</div> 

Тогда вы можете сделать:

$('.pickup-location-time').on('change', function() { 
    $(this).parent().find('.pickup-location-day').prop('checked', true); 
}) 

DEMO

+0

. Это хорошая идея, обернув их в div. Но OP хотел выбрать рядом с .pickup-location-time .. –

+0

@ Bhojendra-C-LinkNepal это делает то, что я интерпретирую OP. Он корректно проверяет «день» в правильной группе – charlietfl

+0

OP требуется время не в день ... –

Смежные вопросы