如何在foreach

时间:2016-09-07 21:37:44

标签: javascript

我有一些我需要用户选择的数据。这些值包含在forEach中,其中包含发布所选列表项的表单。

<ul id="results">
  <% records.forEach(function(value) { %>
        <li>
            <form id="detailsForm" action="/search/detail" method="post">
               <div>
                    Employee Id: <%= value.netId %>
                    Name: <%= value.FirstName%> <%= value.LastName %>
                </div>
            </form>
        </li>
        <% }); %>
    </ul>

javascript很简单:

<script type="text/javascript">
    $("#results").on('click', 'li', function () {
        document.getElementById("detailsForm").submit();

    });
</script>

问题是无论选择哪条记录,第一个结果总是在帖子中传递的结果。这是有道理的,因为表单名称在forEach中是相同的。

document.getElementById("detailsForm").submit();

我需要一种更好的方法来仅发布点击的列表项。我考虑过以不同的方式进行尝试获取$(this).text(),但是有大量的空格和回车(为清晰起见未显示),我真的需要序列化数据。

1 个答案:

答案 0 :(得分:0)

我可以想象您的问题是在循环中使用id。请注意,id在页面上必须是唯一的!生成的HTML可能包含多个具有相同ID的表单,因此使用JavaScript getElementById,您将始终获得第一个

编辑: 因此,删除表单元素的id。 并像这样更改JavaScript:

$("#results").on('click', 'form', function () {
        $(this).submit();
});