我目前将数据保存到mongo中以获取多项选择题并标记正确答案。在mongo中,我保存了类似 question.options.option1.check =“on”的内容
为了正确的答案。
当我进入“编辑”页面时,我将mongo中的特定记录从ejs中提取为“问题”,我可以轻松地将可编辑字段值填充为question.question或question.options.option1 .text等。但我还想标记之前检查过的复选框。下面是复选框的示例。
<input id=opt1 type="checkbox" name="check1" >
当我使用
<input id=opt1 type="checkbox" name="check1" <%=question.options.option1.check%> >
它不起作用时,我也尝试<input id=opt1 type="checkbox" name="check1" checked="<%=question.options.option1.check%>">
这也不起作用。但是,如果我给出属性“checked”=“这里的任何值或根本没有值”,它会检查,这是错误的。
所以问题是检查编辑页面上相应复选框的正确方法是什么。?
答案 0 :(得分:3)
输入类型复选框将检查的属性设置为true,即使您没有为其指定任何值。
因此,您可能需要执行类似
的操作<input id="opt1" type="checkbox" name="check1" <%= question.options.option1.check ? "checked" : "" %> />
如果这对您有用,请告诉我。如果条件无法在&lt;%=%&gt;内进行评估ejs标签,您可能需要在显示之前评估条件并存储在另一个变量中:
<% let checked = question.options.option1.check ? "checked" : "" %>
<input id="opt1" type="checkbox" name="check1" <%= checked %> />
答案 1 :(得分:0)
我有类似的问题。我使用了阿多尼克提供的第二个选项。下面是我使用它的代码块。第一个选项将所有复选框设置为true;即使我将值设置为false,“ false”或“。使用未转义为<%-genChk%>的变量也可以。
<% genres.forEach( g => {%>
<% let genreChk = g.checked ? 'checked' : '' %>
<input type="checkbox" name="gen" id="<%=g._id%>" value="<%=g._id%>" <%=genreChk%>>
<label for="<%=g._id%>"><%=g.name%></label>
<%})%>
答案 2 :(得分:0)
您也可以这样说:
<label class="form-check-label" for="radio2">
<input type="radio" class="form-check-input"
id="rstatus1"
name="status"
value="S"
<%= status === 'S' ? 'checked' : '' %> >SIM
</label>