HTML select EJS 选项
HTML select option with EJS
我正在为我的网络应用程序进行配置,尝试将其呈现到网页。下面是我的代码的一部分。我想把选项选到config[0].volume
了。因此,如果 config[0].volume
为“50”,则所选选项将为“50”。这些代码运行良好。但我想知道。 'How can I shorten this code?' 我的代码太冗长了。
<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>
当前答案有误,所以我想分享我找到的解决方案。
以我的示例为例,我正在制作一个闹钟,并希望 select 下拉列表中的 'hour' 值用于输入(0 到 12)。
<select name="hour">
<% var options = []; %>
<% for(var i = 0; i <= 12; i++) { %>
<option value='<%= i %>'><%= i %></option>
<% } %>
</select>
请注意,name="hour"
用于在通过 POST 请求传递时识别 selected 值。您可以使用 req.body.hour
获得此值,假设您是 运行 类似的设置。
- 服务器端:Node.js / Express
- 客户端: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>
我正在为我的网络应用程序进行配置,尝试将其呈现到网页。下面是我的代码的一部分。我想把选项选到config[0].volume
了。因此,如果 config[0].volume
为“50”,则所选选项将为“50”。这些代码运行良好。但我想知道。 'How can I shorten this code?' 我的代码太冗长了。
<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>
当前答案有误,所以我想分享我找到的解决方案。
以我的示例为例,我正在制作一个闹钟,并希望 select 下拉列表中的 'hour' 值用于输入(0 到 12)。
<select name="hour">
<% var options = []; %>
<% for(var i = 0; i <= 12; i++) { %>
<option value='<%= i %>'><%= i %></option>
<% } %>
</select>
请注意,name="hour"
用于在通过 POST 请求传递时识别 selected 值。您可以使用 req.body.hour
获得此值,假设您是 运行 类似的设置。
- 服务器端:Node.js / Express
- 客户端: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>