Раскрывающийся список удалить пустой элемент из списка - PullRequest
0 голосов
/ 31 мая 2018

Я использую это в хамле, чтобы сделать выпадающий список.Я хочу иметь пустой элемент перед нажатием (по умолчанию ничего не выбрано), как есть, но я хочу удалить пустой элемент из списка, так как больше ничего не выбрать!Возможно ли это?

- sort_options = [{text: "Text0", id: 0}, {text: "Text1", id: 1}, {text: "", id: 2}]
= select_tag id='dropdown_sorter_tag', options_for_select(sort_options.collect{ |k| [k[:text], k[:id]] }, sort_options.collect{ |k| [k[:text], k[:id]] }[2])

1 Ответ

0 голосов
/ 31 мая 2018

хмм, это сложная спецификация ?

Как этот код?

HTML

  <% sort_options = [{text: "Text0", id: 0}, {text: "Text1", id: 1}] %>
  <%= select_tag id='dropdown_sorter_tag', options_for_select(sort_options.collect{ |k| [k[:text], k[:id]] }, sort_options.collect{ |k| [k[:text], k[:id]] }[2]), include_blank: true %>

js (ES6)

const selectElement = document.querySelector('#dropdown_sorter_tag')

selectElement.addEventListener('change', (e) => {
  if (!selectElement.value) {
    return
  }
  const options = selectElement.querySelectorAll('option')
  for (let i = 0; i < options.length; i += 1) {
    if (options[i].value) {
      continue
    }
    options[i].remove()
  }
})
...