在不同大小的下拉列表中为每个 <option> 创建唯一的 id 和 value 属性

我正在使用 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。


慕慕森
浏览 284回答 2
2回答

万千封印

option 标签默认它的 value 属性是给它的任何文本,即<option>some&nbsp;text</option>将分配“一些文本”作为它的值。对此进行了一些测试,结果成立。

绝地无双

考虑到这list.names是一个数组,将每个位置的索引存储在 option.value 中:<form action="/" method="post">&nbsp; &nbsp; <select name="charChoice">&nbsp; &nbsp; &nbsp; &nbsp; <% for (var k = 0; k < list.names; k++) { %>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <option value="<%= k %>"><%= list.names[k] %></option>&nbsp; &nbsp; &nbsp; &nbsp; <% } %>&nbsp; &nbsp; &nbsp; &nbsp; <option value="new">New Character</option>&nbsp; &nbsp; </select>&nbsp; &nbsp; <br><br>&nbsp; &nbsp; <input type="submit" value="Choose"></form>服务器端:myAction = function(req, res) {&nbsp; &nbsp; var list = {};&nbsp; &nbsp; list.names = myFunctionToLoadNames(); // [ "name1", "name2", etc.. ]&nbsp; &nbsp; var charChoice = req.body.charChoice;&nbsp; &nbsp; if (charChoice == "new") {&nbsp; &nbsp; &nbsp; &nbsp; // ...&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; var charChoiceSelected = list.names[];&nbsp; &nbsp; &nbsp; &nbsp; // ...&nbsp; &nbsp; }&nbsp; &nbsp; // ...}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript