带有 EJS 的 HTML 选择选项

HTML select option with EJS

本文关键字:选择 选项 HTML EJS 带有      更新时间:2023-09-26

我正在为我的Web应用程序进行配置,请尝试将其呈现为网页。下面是我代码的一部分。我想要选择的选项到config[0].volume有。因此,如果config[0].volume为"50",则所选选项将为"50"。代码运行良好。但我想知道。"如何缩短此代码?"我的代码太冗长了。

<select id="volume">
  <option value="1" <%= config[0].volume == '1' ? 'selected' : ''%>>1</option>
  <option value="5" <%= config[0].volume == '5' ? 'selected' : '' %>>5</option>
  <option value="10" <%= config[0].volume == '10' ? 'selected' : '' %>>10</option>
  <option value="50" <%= config[0].volume == '50' ? 'selected' : '' %>>50</option>
  <option value="75" <%= config[0].volume == '75' ? 'selected' : '' %>>75</option>
  <option value="100" <%= config[0].volume == '100' ? 'selected' : '' %>>100</option>
</select>

我想了大约 2 个小时,但什么也没出现。也许我必须使用jQuery或JavaScript,并添加属性来拥有它,

attr('selected')... ?

我不知道,你能帮我吗?

您可以根据选项值将其置于循环中。

<select id="volume">
<%
var options = [ "1", "5", "10", "50", "75", "100" ];
for ( var i = 0; i < options.length; i++ )
{
    var selected = ( config[0].volume == i ) ? "selected" : "";
    %><option value="<%=options[ i ] %>" <%=selected %>><%=i %></option><%
}
%>
</select>

当前答案有错误,所以我想分享我找到的解决方案。

对于我的例子,我正在制作一个闹钟,并希望在输入的选择下拉列表中显示"小时"值(0 到 12)。

<select name="hour">
  <% var options = []; %>
  <% for(var i = 0; i <= 12; i++) { %>
    <option value='<%= i %>'><%= i %></option>
  <% } %>
</select>

请注意,name="hour"用于在通过 POST 请求传递时标识所选值。您可以使用req.body.hour(假设您正在运行类似的设置)来获取此值。

  • 服务器端:节点.js/快递
  • 客户端:EJS/HTML

为什么不使用jQuery(或普通JS)?

<p class="row ">
    <label class="col-lg-12">Language</label>
    <select id="lang" class="input col-lg-12">
        <option hidden value="">Select one</option>
        <option value="ru">Russian</option>
        <option value="en">English</option>
        <option value="ua">Ukranian</option>
    </select>
    <script defer>
        jQuery('#lang').val("<?= newsPost.lang ?>")
    </script>
</p>