Получение выбора для выбора соответствующей опции при загрузке формы? - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть форма, которая позволяет пользователю редактировать информацию о местоположении.Там есть выбор входа, позволяющий пользователю ввести категорию местоположения.Я использую 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 голосов
/ 20 ноября 2018

То, что я делаю несколько раз, - это использование тега сценария

<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 </p>

0 голосов
/ 20 ноября 2018

Не уверен, что это будет работать. Попробуйте и дайте мне знать. Спасибо.

<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>
...