我有一张表,上面列出了所有数据。数据以for循环打印,因此表中有很多行。单击按钮如何获取行中的用户ID?

<table>
        <td>
            <input type="hidden" value="<c:out value="${user.id}" />" name="userId" />
        </td>
        <td>
        <button class="btn btn-default fileUpload" data-toggle="modal" id="btnUpload" data-target="#file-modal" value="<c:out value="${user.id}" />">Upload</button></td>
</table>


而且我有一个模态容器。单击表格中的上传按钮后,将打开模态以上传文件。

<form action="${pageContext.request.contextPath}/UserServlet" enctype="multipart/form-data" method="post">
                    <input type="hidden" value="5519" name="OPS" />
                    <input type="hidden" name="uploadUserId" />
                    <div class="form-group">
                        File : <input type="file" class="file" name="uploadFile"><br />
                        <button type="submit" class="btn btn-default">Upload</button>
                        <br /><br />
                    </div>
                </form>


我想做的是单击btnUpload,将隐藏输入类型userId中的值复制到隐藏值类型uploadUserId中。

我已尝试执行以下操作,但均无济于事

1个

$(document).ready(function () {
    $("#btnUpload").click(function(){
        var $userId = $(this).closest("tr").find("#userId").text();
        $("#uploadUserId").val($userId);
    });
});


2

 $(document).ready(function () {
        $("#btnUpload").click(function(){
            var $userId = $(this).closest("tr").children()[2].text();
            $("#uploadUserId").val($userId);
        });
});

最佳答案

这将在不更改html的情况下完成操作

$(document).ready(function () {
    $("#btnUpload").click(function(){
        var $userId = $(this).parent().prev("td").children("input:hidden").val();
        $("#uploadUserId").val($userId);
    });
});


另一个解决方案是将ID添加到输入元素,如下所示,

  <input id="userVal" type="hidden" value="<c:out value="${user.id}" />"name="userId" />


那么你可以从下面的jQuery中获取值

   $("#userVal").val();

关于javascript - 使用JQuery将值从表复制到模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38493852/

10-10 23:29