我使用jstl foreach循环来显示我的数据。用户可以更改值,最后我想通过jquery将这些数据发送到服务器。
我的问题是当用户更改数据并单击“确定”按钮时,如何将循环变量传递给我的jquery函数。
我用了
<c:set var="chequeInfo" value="${cheque.chequeNo}~${cheque.amount}~${cheque.chequeDate}"/>
将chequeInfo
传递给registerEdit()
函数。但是当用户编辑我的数据时,这个变量的值没有改变
<c:forEach items="${chequeList}" var="cheque">
<div class="row">
<input class="date" type="text"
value="${cheque.chequeDate}">
<select id="chequeStatus">
<c:forEach items="${chequeStatus}" var="status">
<option value="${status.id}">${status.farsiName}</option>
</c:forEach>
</select>
<label class="col-lg-3">${cheque.chequeNo} </label>
<input type="text" value="${cheque.amount}">
<button class="col-lg-offset-1 col-lg-1 btn btn-default register-edit"
onclick="registerEdit('${cheque}','${status.id}')">ok
</button>
</div>
</c:forEach>
如何将${cheque}
和${status.id}
发送到registerEdit()
功能。谢谢
答案 0 :(得分:0)
您可以为foreach标记添加varStatus属性,为输入创建唯一ID,并将index的值传递给registerEdit。
<c:forEach items="${chequeList}" var="cheque" varStatus="loop">
<div class="row">
<input id="chequeDate-${loop.index}" class="date" type="text"
value="${cheque.chequeDate}">
<select id="chequeStatus-${loop.index}">
<c:forEach items="${chequeStatus}" var="status">
<option value="${status.id}">${status.farsiName}</option>
</c:forEach>
</select>
<label class="col-lg-3">${cheque.chequeNo} </label>
<input id="amount-${loop.index}" type="text" value="${cheque.amount}">
<button class="col-lg-offset-1 col-lg-1 btn btn-default register-edit"
onclick="registerEdit('${loop.index}')">ok
</button>
</div>
</c:forEach>
在你的js函数中
function registerEdit(index){
//get chequeStatus value like this
var chequeStatus = $("#chequeStatus-"+index).val()
//do same thing for other values
}