我有一张表,每行都是一个表格。在行的单元格中是删除按钮。单击复选框时,我需要一个jquery模式对话框确认删除。 我尝试了javascipt,但只为第一行工作。
$(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");
}
}
});
})
答案 0 :(得分:0)
变化:
var form = $("form").attr("id")
......将成为:
var form = $(this).closest('tr').find('form').attr('id');
这将从“删除”按钮的行中选择表单,而不是始终是第一个form
。有关详细信息,请参阅closest()
的文档。
您正在重复使用ID Wcheckboxcd1
。 ID必须在整个页面中是唯一的。当您使用表单时,请使用类或name
属性。
另请注意,当您接近让jQuery对象首先包含表单元素时,使用document.getElementById
是非常多余的。请考虑使用类似下面的代码;
$('[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" />