Forms 从JSTL中的列表中选择一项

Forms 从JSTL中的列表中选择一项,forms,jsp,hidden-field,jst,Forms,Jsp,Hidden Field,Jst,在下面的JSP中,我有一个列表,我正在使用一个额外的按钮对其进行迭代和打印 JSP <form action="servlet"> <table border="2"> <th>Req no</th> <th>username<

在下面的JSP中,我有一个列表,我正在使用一个额外的按钮对其进行迭代和打印

JSP

<form action="servlet">
                                <table border="2">
                                    <th>Req no</th>
                                    <th>username</th>
                                    <th>Leave Type</th>
                                    <th>No of Days Requested</th>
                                    <th>Status</th>
                                    <th>Approve</th>
                                    <c:forEach var="pro" items="${userRequest}">
                                        <tr>
                                            <td><c:out value="${pro.reqno}"></c:out></td>
                                            <td><c:out value="${pro.user_name}"></c:out></td>
                                            <td><c:out value="${pro.leave_Type}"></c:out></td>
                                            <td><c:out value="${pro.no_of_days}"></c:out></td>
                                            <td><c:out value="${pro.status}"></c:out></td>
                                            <td><input type="submit" value="approve"></td>
                                            <td><input type="hidden" name="approve" value="yes"></td>
                                            <td><input type="hidden" name="reqno" value="${pro.reqno}"></td>
                                        </tr>
                                    </c:forEach>
                                </table>
                            </form>

请求号
用户名
休假类型
请求的天数
地位
批准

如果单击表单中的“批准”按钮,则隐藏字段将获取所有行的值。我需要从单独的行(即我点击按钮的行)发布reqno。请给我提个主意。 提前谢谢

  • 您需要将“批准”按钮从“提交”类型更改为“按钮”类型

  • 删除TR中的“隐藏”输入

  • 示例代码:

    <tr>
        <td><c:out value="${pro.reqno}"></c:out></td>
        <td><c:out value="${pro.user_name}"></c:out></td>
        <td><c:out value="${pro.leave_Type}"></c:out></td>
        <td><c:out value="${pro.no_of_days}"></c:out></td>
        <td><c:out value="${pro.status}"></c:out></td>
    
        <td><input type="button" class="btnApproveReq" data-reqno="${pro.reqno}" value="approve"></td>
    </tr>
    
    
    
  • 使用jQuery处理onclick:

    <script type="text/javascript">
        $(document).ready(function () {
    
             $(".btnApproveReq").click( 
                 function() {
                     var selectedReqNo = $(this).attr("data-reqno");
    
                     var urlToApprove = "/yourApp/req/approve?reqno=" + selectedReqNo;
    
                     // CALL AJAX to urlToApprove 
    
                     // Call this If you want to remove TR after AJAX success
    
                     // $(this).parent() --> TD
                     // $(this).parent().parent() --> TR
                     $(this).parent().parent().remove();
                 }
             );
        });
    </script>
    
    
    $(文档).ready(函数(){
    $(“.btnApproveReq”)。单击(
    函数(){
    var selectedReqNo=$(this.attr(“数据需求号”);
    var urlToApprove=“/yourApp/req/approve?reqno=“+selectedReqNo;
    //调用AJAX以获得URL批准
    //如果希望在AJAX成功后删除TR,请调用此函数
    //$(this).parent()-->TD
    //$(this.parent().parent()-->TR
    $(this.parent().parent().remove();
    }
    );
    });
    

  • 您确定它将仅从该行获取输入,即listSure中的单个元素。您可以测试它。如果我们将该行发布到servlet,是否有任何方法可以删除该行?请解释一下此路径,我正在使用netbeans IDE“/yourApp/req/approve?reqno=”,这里的“req”、“approve”和“reqno”是什么?/yourApp/req/approve?reqno=”是我的假url。此url是处理批准功能的url服务。