【问题标题】:Semantic UI React - do not trigger onChange while dropdown option list is still openSemantic UI React - 当下拉选项列表仍然打开时不触发 onChange
【发布时间】:2020-01-17 23:32:45
【问题描述】:

我在 ReactJS 上有一个语义下拉菜单,我只想在用户真正选择一个选项时触发 onChange 事件,而不是在仍然显示选项列表时触发。

让我解释一下:

下拉菜单是这样创建的:

<Dropdown
  placeholder='Select language'
  fluid
  search
  selection
  options={options}
  onChange={...}
/>

显示如下:

当您点击它时,它会打开(下拉?)选项列表:

问题在于,当您使用向下箭头转到所需选项时,每次按下向下箭头都会触发onChange在这种情况下,要到达Aragones ,它会触发onChange 4次。

我只想在选项列表关闭时触发 onChange,而不是之前的 3 次,用户无意选择任何值:

对我来说,直观地说,用户只想在按下回车键、单击选项或单击选项外部以关闭选项列表时选择值。否则她只是在四处浏览。但我不想为所有这些情况编写单独的侦听器。

就我而言,选择一个选项会产生很多后果,所以我想知道用户何时真正想要这样做。我该怎么做?

作为替代方案,我可以收听选项列表的显示或隐藏事件吗?或在onChange 中询问选项列表是显示还是隐藏?

谢谢!

【问题讨论】:

    标签: javascript reactjs semantic-ui semantic-ui-react


    【解决方案1】:

    来自https://react.semantic-ui.com/modules/dropdown/

    选择导航 真 {bool}
    使用箭头键导航菜单时是否更改值。 设置为 false 将需要输入或左键单击以确认选择。

    【讨论】:

    • 谢谢!我不知道谁认为这应该是默认选项
    • @MartinMassera 根据w3c recommendations for accessible websites,“当使用箭头键突出显示选项时,突出显示的选项会显示在文本框中。”。我从 react-autosuggest 文档中发现了这一点。该组件的作用相同 - 当用户使用箭头导航时触发 onChange
    • 既然您似乎知道如何解决这个问题,您是否知道如果用户实际上没有选择任何内容,onChange 也不会被触发?如果用户向下导航并点击“esc”,它仍然算作 onChange。未设置原始值时会发生这种情况。
    • 抱歉,这不是真的。如果你按 esc,什么都不会发生。但是如果用户在下拉菜单之外点击,它就会被视为选中。
    • @MartinMassera "selectOnBlur true {bool} 定义是否在模糊时选择突出显示的项目。"我想就是这样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多