如何处理ejs中的复选框数组

时间:2018-01-07 23:55:23

标签: javascript jquery node.js checkbox ejs

我在网页上使用ejs,并且有一个页面,我有一个对象数组。我不知道页面加载时有多少个对象。这是一个我可以编辑一组公告的页面。我想使用复选框启用或禁用每个公告,但需要首先根据传入值设置它们。该页面如下所示: enter image description here 我在页面代码中使用了foreach:

<% var i=0; %>
<% announcements.forEach(function(announcement) { %>
<tr>
    <td><input type="checkbox" id="enabled<%= i %>" name="enabled[<%= i %>]"></td>
    <td contenteditable="true"><%= announcement.text %></td>
    <td><%= type %></td>
    <td>
        <span class="table-remove glyphicon glyphicon-remove"></span>
    </td>
    <td>
        <span class="table-up glyphicon glyphicon-arrow-up"></span>
        <span class="table-down glyphicon glyphicon-arrow-down"></span>
    </td>
</tr>
<%      i++; %>
<% }) %>

如何设置每行复选框的初始值?我使用变量i来唯一标识复选框,但我不知道如何在脚本部分中找到行数。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在输入元素本身上设置初始值。

对于这个例子,我假设你有一个值来表明公告是否“启用”:

<td>
  <input type="checkbox" id="enabled<%= i %>" name="enabled[<%= i %>]" <%= announcement.enabled ? "checked" : null %> >
</td>

这有点简洁 - 这是另一个做同样事情的例子:

<td>
  <input type="checkbox" id="enabled<%= i %>" name="enabled[<%= i %>]" <% if (announcement.enabled) { %> "checked" <% } %> >
</td>