从mongo提取数据供用户编辑后,如何在HTML中使用HTML显示复选框值(使用ejs)?

use*_*984 0 javascript checkbox ejs mongodb express

我目前将数据保存到mongo中以选择问题,并标记正确的答案。在mongo中,我将它们保存为question.options.option1.check =“ on”之类的正确答案。

当我进入“编辑”页面时,我从mongo中提取了特定的记录,该记录在ejs中可以作为“问题”使用,并且我能够轻松地将可编辑字段的值填充为question.question或question.options.option1.text等。但是,我也想标记以前已选中的复选框。以下是该复选框的示例。

<input  id=opt1 type="checkbox" name="check1"  >
Run Code Online (Sandbox Code Playgroud)

当我使用 <input id=opt1 type="checkbox" name="check1" <%=question.options.option1.check%> >它不起作用时,我也尝试过<input id=opt1 type="checkbox" name="check1" checked="<%=question.options.option1.check%>">这也不起作用。但是,如果我给属性“ checked” =“此处有任何值或根本没有任何值”,它将进行检查,这是错误的。

因此,问题是在编辑页面上检查相应复选框的正确方法是什么?

小智 5

即使您没有为其分配任何值,输入类型复选框也会将属性选中为true。

因此,您可能需要做类似的事情

<input id="opt1" type="checkbox" name="check1" <%= question.options.option1.check ? "checked" : "" %> />
Run Code Online (Sandbox Code Playgroud)

让我知道这是否对您有用。如果无法在<%=%> ejs标记内评估条件,则可能需要评估条件并将其存储在另一个变量中,然后再显示它:

<% let checked = question.options.option1.check ? "checked" : "" %>
<input id="opt1" type="checkbox" name="check1" <%= checked %> />
Run Code Online (Sandbox Code Playgroud)