如何获得与复选框相关的标签值(我是否打破了jsfiddle)?

我需要构建一个用户选择的csv dept数字。

我从这个HTML开始:

 

…而这个jQuery:

 var deptsSelected = ''; $("#btnDept").click(function () { $("#dialog").dialog({ modal: true }); $('checkbox').click(function() { deptsSelected += this.val + ','; alert(deptsSelected); }); }); 

…这对于显示选择的depts没有任何作用 – 这是有道理的,因为“this”可能是复选框,当然也不是标签。 我将在这个对话框中有几十个复选框,并且不想写这样的东西:

$(’#ckbx3’)。click(function(){deptsSelected + = $(’lbl3’)。val +’,’; alert(deptsSelected);});

…对于每个复选框/标签对(即使使用这种powershell方法,上面的代码显示了此警报,而不是我期望/希望的:

在此处输入图像描述

天堂到Murgatroid /什么是kerfluffle?!?

jsfiddle在这里: http : //jsfiddle.net/clayshannon/aWpPN/

请试试这个:

 var deptsSelected = ''; $("#btnDept").click(function () { $("#dialog").dialog({ modal: true }); $("input:checkbox").click(function () { deptsSelected += $("label[for='" + this.id + "']").text() + ','; alert(deptsSelected); }); }); 

以下是它的小提琴: http : //jsfiddle.net/yFB6W/

还有其他方法,但是这个方法将使用已检查的复选框ID中的已拆分Number值更新数组

http://jsfiddle.net/aWpPN/1/

 $("#btnDept").click(function () { $("#dialog").dialog({ modal: true }); }); function getChecked() { var deptsSelected = []; $('#dialog :checked').each(function() { deptsSelected.push( this.id.split('ckbx')[1] ); }); alert( deptsSelected ); } $('#dialog').find('input').change( getChecked ); 

this.val()替换为$('label[for="'+$(this).attr('id')+'"]').html()$('checkbox')应为$('input[type="checkbox"])

您可以为复选框添加值:

  

这在您想要的答案中:

  
var deptsSelected = []; $("#btnDept").click(function(){ $("#dialog").dialog({ modal: true }); }); $(':checkbox').click(function(){ $(':checkbox').each(function(i){ if($(this).is(':checked')){ deptsSelected[i] = $(this).val(); } else{ deptsSelected.splice(i, 1); } }); alert(deptsSelected.join()); });

我在http://jsfiddle.net/PHPglue/akp7Q/1/上放了一个新的小提琴。 你忘记了checkbox值,你的jQuery也需要帮助。

通过向复选框添加值,与标签中的相同。

 

然后迭代容器获取这些值。 (仅检查示例)

 var checkboxArray =[]; $('#checkBoxContainer :checked').each(function() { checkboxArray.push($(this).val()); });