使用EJS的HTML选择选项

Jun*_*tae 12 javascript jquery ejs

我正在为我的Web应用程序进行配置,尝试将其呈现为网页.以下是我的代码的一部分.我想选择配置[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>
Run Code Online (Sandbox Code Playgroud)

我想大约2个小时,但没有任何结果.也许我必须使用jquery或javascript,并添加属性来拥有它,

attr('selected')... ?
Run Code Online (Sandbox Code Playgroud)

我不知道,你能帮帮我吗?

Don*_*mmy 19

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

<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>
Run Code Online (Sandbox Code Playgroud)


小智 5

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

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

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

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

  • 服务器端:Node.js / Express
  • 客户端:EJS/HTML