我正在研究Mvc.Grid并遇到一个复选框onclick问题。网格中有个人资料列表,每个个人资料的每一行都有一个复选框。我需要获取已检查的ID列表。所以我的jquery代码是
$('.checkboxClick').click(function () {
debugger;
var id = $(this).attr("id");
CheckPaymentSelected(id);
});
function CheckPaymentSelected(id) {
debugger;
if ($("#" + id).is(':checked'))
{
debugger;
selectedProfilesID.push(id);
}
else {
var removeItem = id;
selectedProfilesID = jQuery.grep(selectedProfilesID, function (value) {
return value != removeItem;
});
}
}
因此单击一个复选框,调试器应该只打一次。但相反,调试器打了10次。我的网格长度也是10.任何人都可以帮我解决这个问题。我没有点击功能,而是尝试了OnChange功能,但都是徒劳的。我的复选框如下所示:
我做错了吗?
答案 0 :(得分:0)
$('.checkboxClick').click(function () {
var id = $(this).attr("id");
if($(this).is(':checked')
{
debugger;
selectedProfilesID.push(id);
}
else{
var removeItem = id;
selectedProfilesID = jQuery.grep(selectedProfilesID, function (value) {
return value != removeItem;
});
}
});
试试这个。我认为这将解决您的问题。
答案 1 :(得分:0)
试试这个
$('.checkboxClick').click(function () {
if(this.checked) {
debugger;
var id = this.id;
CheckPaymentSelected(id);
}
});
<强> DEMO HERE 强>
答案 2 :(得分:0)
在深入思考可能是什么解决方案后,我尝试这样做,令人惊讶,幸运的是它对我有用:
$("input#@item.imdcode").click(function() {
debugger;
var id = $(this).attr("id");
CheckPaymentSelected(id);
});
function CheckPaymentSelected(id) {
debugger;
if ($("#" + id).is(':checked')) {
debugger;
selectedProfilesID.push(id);
}
else {
var removeItem = id;
selectedProfilesID = jQuery.grep(selectedProfilesID, function (value) {
return value != removeItem;
});
}
}