将jstl foreach变量传递给javascript函数

时间:2015-10-04 05:23:26

标签: jquery jsp jstl

我使用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()功能。谢谢

1 个答案:

答案 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

}