我在列表中显示数据,因此数据库中的每条记录都显示为列表项。我在每个列表行中有两个按钮,即修改,删除。因此,每当用户点击相应按钮时,要么必须更改记录的列数据,要么必须删除数据库中的该记录。我使用Ajax来获取数据。以下是我的代码。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>INFO</title>
<style type="text/css">
.table_box {
display: table;
margin: auto;
}
</style>
</head>
<body>
<jsp:include page="common.jsp"/>
<div>
<input type="text" name="date" id="date" readonly>
</div>
<div class="table_box">
<div class="container" id="tablediv">
<table style='text-align:center;' class="table table-bordered" id="datatable">
<tr class="success">
<th style='text-align:center;' scope="col">Record1</th>
<th style='text-align:center;' scope="col">Record2</th>
<th style='text-align:center;' scope="col">Name</th>
<th style='text-align:center;' scope="col">Modify/Delete</th>
</tr>
</table>
</div>
</div>
<script>
function requestForData(date)
{
$.get('getdata',{ 'date': date },function(jsonResponse) {
$("#tablediv").show();
else if(jsonResponse!=null){
$("#datatable").find("tr:gt(0)").remove();
var table1 = $("#datatable");
$.each(jsonResponse, function(key,value) {
var rowNew = $("<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>");
rowNew.children().eq(0).text(value['record1']);
rowNew.children().eq(1).text(value['record2']);
rowNew.children().eq(2).text(value['Name']);
var id = value['primaryId'];
rowNew.append("<td><button id="+id+" class=\"btn modify-row\">Modify</button><button id="+id+" class=\"btn delete-row\">Delete</button></td>");
rowNew.appendTo(table1);
});
}
});
}
$(document).ready(function() {
requestForData(todayDate());
$(".modify-row").click(function () {
var buttonname = this.name;
alert("You clicked a button"+buttonname);
});
});
我尝试用以下替换点击,但仍然没有运气。事件没有被解雇。
$(".modify-row").on("click", function () {
var buttonname = this.name;
alert("You clicked a button"+buttonname);
});
我确信JQuery正在被引用,因为jquery日历的其他元素在该页面上正常工作。有人可以帮我解决以下两个问题。
如何在这些按钮上触发点击事件?
如何为每个按钮标记多个信息,即当用户点击删除时,我希望获得该记录的主要ID以及该对话框的名称,以便从用户那里获得确认。这是做这种事的正确方法吗?