【问题标题】:How do I handle an array of checkboxes in ejs如何处理ejs中的一组复选框
【发布时间】:2018-01-08 08:25:44
【问题描述】:

我在我的网页中使用 ejs,并且有一个页面,其中有一组对象。我不知道页面加载时我有多少对象。这是一个我可以编辑一组公告的页面。我想使用一个复选框来启用或禁用每个公告,但需要从传入的值开始设置它们。页面如下所示: 我在页面代码中使用了 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 来唯一标识复选框,但我不知道如何找到脚本部分中的行数。

谢谢!

【问题讨论】:

    标签: javascript jquery node.js checkbox ejs


    【解决方案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>
    

    【讨论】:

    • 是的!我看到你做了什么,我认为这会奏效。谢谢!
    • 只是需要确认一下,这确实有效。我应该亲眼看到的! (并非总是如此。:-))
    • 哇!我很高兴它有帮助。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 2017-04-20
    • 2015-11-10
    • 2019-02-08
    • 2013-04-03
    • 2012-04-20
    相关资源
    最近更新 更多