2014-01-09 3 views
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); 
    });   
}); 

see this fiddle.

+0

Для поиска флажка нужно использовать '.change' вместо' .click'. – timo

ответ

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

попробуйте что-то вроде этого, FIDDLE

Al поэтому не забудьте закрыть ярлык «label»

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

Оно должно быть:

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

Updated fiddle here.

0

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

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

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

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

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

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