javascript - 下拉从列表中删除空白项

标签 javascript ruby-on-rails drop-down-menu haml

我在 haml 中使用它来制作下拉菜单。我想在单击之前保留空白项目(默认未选择任何内容),但我想从列表中删除空白项目,因为它无法再次选择!可能吗?

- 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])

最佳答案

嗯,这很难规范🤔

这段代码怎么样?

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()
  }
})

关于javascript - 下拉从列表中删除空白项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50613541/

相关文章:

javascript - 通过 aria 标签获取 HTML 元素

javascript - 使用 jQuery 垂直居中内容

javascript - 将 HTML 代码转换为 Javascript 变量(字符串)

ruby-on-rails - React-Rails API 轮询

html - 如何更改 Bootstrap 下拉列表 :before triangle to different shape

javascript - '+ ((visible && "is-active") || "")' 是一个好的做法吗?

javascript - Bamboo 建图生成

ruby-on-rails - 从记录关联中仅检索 'id' 值

Django - Country -> State-> City 下拉列表

java - selenium webdriver java 下拉框