我正在使用ejs文件作为我的视图创建一个nodejs应用程序。我创建了一个下拉菜单,该菜单从 json 文件中提取以填充它。我想使每个选项都有一个唯一的 id 或值,以便我知道选择了哪个选项。
我尝试使用 ejs 标签将其插入到标签属性中,但它不会在 html 标签中看到。
<form action="/" method="post">
<select name="charChoice">
<% for (var k in list.names){ %>
<option id="old"><%=list.names[k]%></option>
<% } %>
<option value="new">New Character</option>
</select>
<br><br>
<input type="submit" value="Choose">
</form>
这是我到目前为止所拥有的。我想要当前标记为旧的选项标签的唯一 id。
考虑到list.names
是一个数组,将每个位置的索引存储在 option.value 中:
<form action="/" method="post">
<select name="charChoice">
<% for (var k = 0; k < list.names; k++) { %>
<option value="<%= k %>"><%= list.names[k] %></option>
<% } %>
<option value="new">New Character</option>
</select>
<br><br>
<input type="submit" value="Choose">
</form>
服务器端:
myAction = function(req, res) {
var list = {};
list.names = myFunctionToLoadNames(); // [ "name1", "name2", etc.. ]
var charChoice = req.body.charChoice;
if (charChoice == "new") {
// ...
} else {
var charChoiceSelected = list.names[];
// ...
}
// ...
}
选项标签默认将其值属性设置为提供给它的任何文本,即
<option>some text</option>
将分配"一些文本"作为其值。对此进行了一些测试,它站得住脚。