获取选择输入以在表单加载中选择适当的选项?

时间:2018-11-19 21:43:17

标签: javascript node.js express ejs

我有一个表格,允许用户编辑有关位置的信息。有一个选择输入,允许用户输入位置的类别。我正在使用Express + EJS访问数据库中的现有信息。当用户选择编辑位置信息时-我希望选择输入在加载表单时选择适当的类别。这是我目前设置的方式:

路线:

app.get("/locations/:id/edit", function(req, res){
  res.render("locations/edit", {location: req.location});
});

表格:

<select id="category" name="location[category]">
  <option value="Lake" <% if (location.category == "Lake") { 
  %>selected<% } %>>Lake</option>
  <option value="Beach" <% if (location.category == "Beach") { 
  %>selected<% } %>>Beach</option>
  <option value="River" <% if (location.category == "River") { 
  %>selected<% } %>>River</option>
</select>

这就是我想到的。当然,对于每个选项都没有if语句,有更好的方法可以实现此目的。预先感谢!

2 个答案:

答案 0 :(得分:0)

不确定这是否行得通。试试看,让我知道。谢谢。

<select id="category" name="location[category]"><%
let opts = [ 'Lake', 'River', 'Beach'];
for(let opt of opts){

 %><option value="<% opt %>" <% if (location.category == opt) { %>selected<% } %> > <% opt %></option><%

}
%></select>

答案 1 :(得分:0)

我有时候在使用脚本标签

<select id="category" name="location[category]">
<option value="Lake" >Lake</option>
<option value="..." >Lake</option>
</select>
<script>document.getElementById("category").value='<%- location.category %>'</script>

我还认为UR缺少<%-或<%=的情况可能会随着EJS中的时间而有所改变