在我的JSP中,我按如下方式填充表格(仅限相关数据):
<c:forEach var="person" items="${personsList}">
<c:forEach var="account" items="${person.accounts}">
<tr>
<td>${account.accountId}</td>
<td contenteditable='true' onblur="saveData(${person.id},${account.accountId},${account.balance})">${account.balance}</td>
</c:forEach>
</c:forEach>
请注意,我想使用“onblur”活动。 我的JavaScript看起来像这样:
function saveData(id, accId, balance) {
$.ajax({
type : "POST",
url : "updateBalance.html",
data: ({id : id, accId : accId, balance : balance}),
success : function(data) {
if (data!="success!!") {alert("done")}
else {alert("error!!")}
}
})
}
问题是我不知道如何发送新的“余额”值(当我调用javascript函数时,我总是在第一次加载页面时发送加载的余额)。
答案 0 :(得分:0)
您可以将this
对象传递给您的javascript函数saveData
,如下所示:
<c:forEach var="person" items="${personsList}">
<c:forEach var="account" items="${person.accounts}">
<tr>
<td>${account.accountId}</td>
<td contenteditable='true' onblur="saveData(this, ${person.id},${account.accountId},${account.balance})">${account.balance}</td>
</c:forEach>
</c:forEach>
并重新定义你的功能:
function saveData(obj, id, accId, balance) {
$.ajax({
type : "POST",
url : "updateBalance.html",
data: ({id : id, accId : accId, balance : $(obj).text()}),
success : function(data) {
if (data!="success!!") {alert("done")}
else {alert("error!!")}
}
})
}