如何获得与复选框相关的标签值(我是否打破了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值更新数组
$("#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()); });