Jquery 如何通过单击按钮在请求参数中传递html输入值

Jquery 如何通过单击按钮在请求参数中传递html输入值,jquery,jsp,jakarta-ee,jstl,core,Jquery,Jsp,Jakarta Ee,Jstl,Core,我在一个表中有一个使用核心库动态生成的书籍列表。用户可以选择要添加到购物车中的图书数量,然后单击“添加到购物车”按钮。我想要的是从输入中传递值“quantity”,并在单击按钮时将其传递到请求参数中。我尝试了这种方法,但仅传递第一行数量的值,即使单击了第三行(例如)上的按钮: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <c:for

我在一个表中有一个使用核心库动态生成的书籍列表。用户可以选择要添加到购物车中的图书数量,然后单击“添加到购物车”按钮。我想要的是从输入中传递值“quantity”,并在单击按钮时将其传递到请求参数中。我尝试了这种方法,但仅传递第一行数量的值,即使单击了第三行(例如)上的按钮:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<c:forEach var="book" items="${books}">
    <tr>
        <td><img alt="" src="images/${book.getIsbn()}.jpg" width="100"></td>
        <td><c:out value="${book.getIsbn()}"></c:out></td>
        <td><c:out value="${book.getTitle()}"></c:out></td>
        <td><input type="number" id="qtty"></td>
        <td>
            <button onclick='window.location ="usercart.htm?isbn=${book.getIsbn()}&qtty="+document.getElementById("qtty").value'>Add to cart</button>
        </td>
    </tr>
</c:forEach>

添加到购物车

这里的问题似乎是您有多个具有相同id“qtty”和文档的输入。getElementById(“qtty”)返回第一个输入

您可以尝试为每个输入指定一个不同的标识符:

<td><input type="number" id="qtty_${book.isbn}"></td>
<td>
    <button onclick='window.location ="usercart.htm?isbn=${book.getIsbn()}&qtty="+document.getElementById("qtty_${book.isbn}").value'>Add to cart</button>
</td>

添加到购物车
但是,更好的解决方案可能是重构以对每个元素使用表单。请参阅下面关于为每行创建表单的讨论:


谢谢,为每一行放置唯一的id效果很好,即使它在netbeans上给了我一个html错误(id值不能包含空格),但它仍然有效。