получить значение метки при проверке флажка

0

мой html:

<input type="checkbox" value="113" id="product_113" class="chk_product_name" name="product[parentid][childid][]">
<label for="product_113">Samsung<label>
<br>
<input type="checkbox" value="114" id="product_114" class="chk_product_name" name="product[parentid][childid][]">
<label for="product_114">Nokia<label>
<br>
<input type="checkbox" value="115" id="product_115" class="chk_product_name" name="product[parentid][childid][]">
<label for="product_115">Apple<label>
<br>
<input type="checkbox" value="116" id="product_116" class="chk_product_name" name="product[parentid][childid][]">
<label for="product_116">LG<label>

я просто хочу получить значение каждого ярлыка при проверке флажка. Я пробую это в jquery:

$('[name="product[parentid][childid][]"]').click(function(){            
    $('[name="product[parentid][childid][]"]:checked').each(function() {
        alert($("label:for:product_"+this.value).html );
    });         
});

см. эту скрипку.

  • 0
    Вам нужно использовать .change вместо .click чтобы найти событие-флажок.
Теги:

5 ответов

1
Лучший ответ

Вам нужно закрыть тег метки. использование

<label for="product_113">Samsung</label>

вместо

<label for="product_113">Samsung<label>

JavaScript

$('[name="product[parentid][childid][]"]').click(function () {
    $('[name="product[parentid][childid][]"]:checked').each(function () {
        alert($("label[for='product_" + this.value + "']").html());
        //OR
        alert($('label[for=' + this.id + ']').html());
    });
});

DEMO

Кроме того, я предлагаю вам использовать событие change вместо click

0

Я думаю, что это короткий, читаемый и чистый

$('.chk_product_name').change(function(){ 
  if (this.checked){ alert($('label[for='+this.id+']').text());}
});
0

Должен быть:

$('[name="product[parentid][childid][]"]').click(function () {
    $('[name="product[parentid][childid][]"]:checked').each(function () {
        alert($("label[for='product_" + $(this).val()+"']").html());
    });
});

Обновлена скрипка.

0

Вот гораздо более короткая версия: http://jsfiddle.net/Tq4C2/7/

$('[name="product[parentid][childid][]"]').click(function(){
    alert($(this).next().text());
});

Тег <label> не был закрыт.

0

попробуйте что-то подобное, FIDDLE

Также не забудьте закрыть тег 'label'

$('[name="product[parentid][childid][]"]').click(function () {
    alert($('label[for=' + this.id + ']').html());
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню