从窗体数组中获取特定的复选框单击事件
问题描述:
我有一个表,每一行都是一个窗体。在一行的单元格上是一个删除按钮。点击复选框时,我需要一个jQuery模式对话框确认。 我尝试了javascipt incuded但只为第一行工作。从窗体数组中获取特定的复选框单击事件
$(document).ready(function(){
$("#dialog").hide();
});
$('#Wcheckboxcd1').click(function(e) {
var form = $("form").attr("id");
$("#dialog").dialog({
buttons : {
"Διαγραφή" : function() {
document.getElementById(form).submit();
$(this).dialog("close");
},
"Ακύρωση" : function() {
document.getElementById(form).Wcheckboxcd.checked = 0;
$(this).dialog("close");
}
}
});
})
答
-
变化:
var form = $("form").attr("id")
...是:
var form = $(this).closest('tr').find('form').attr('id');
这从 “删除” 按钮的行内选择的形式,而不是总第一个
form
。有关更多信息,请参阅closest()
的文档。 您正在重新使用ID
Wcheckboxcd1
。 ID在整个页面中必须是唯一的。在使用表单时,请使用类,或者使用一个name
属性。
还请注意,这是相当多余供您使用document.getElementById
,当你接近有包含在首位的表单元素的jQuery对象。考虑使用下面的代码代替;
$('[name="Wcheckboxcd1"]').click(function(e) {
$("#dialog").dialog({
buttons : {
"Διαγραφή" : function() {
$(this).closest('tr').find('form').submit();
$(this).dialog("close");
},
"Ακύρωση" : function() {
this.checked = false;
$(this).dialog("close");
}
}
});
})
。以上假设你已经改变:
<input type="checkbox" id="Wcheckboxcd1" />
到:
<input type="checkbox" name="Wcheckboxcd1" />
使用类复选框。不要为多个复选框元素使用相同的ID – 2014-09-26 10:18:47
是的我为每个表单的所有复选框保留了相同的ID bau如何获取特定复选框的点击? – Giorgos 2014-09-26 10:39:30
所有的拳头,你应该明白,ID应该是唯一的HTML元素。您应该在复选框上添加类,然后使用类来绑定复选框事件,而不是放置标识。用这个来绑定''('。Wcheckboxcd1')' – 2014-09-26 10:52:48