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



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

将分配"一些文本"作为其值。对此进行了一些测试,它站得住脚。

最新更新