将 jstl foreach 变量传递给 javascript 函数

pass jstl foreach variable to javascript function

我使用 jstl foreach 循环来显示我的 data.User 可以更改值,最后我想通过 jquery 将这些数据发送到服务器。 我的问题是当用户更改数据并单击 'ok' 按钮时,如何将循环变量传递给我的 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() 函数。谢谢

您可以为每个标签添加 varStatus 属性,为您的输入创建唯一 ID,并将索引值传递给您的 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

}