【问题标题】:Javascript: How to force the user to click on selectJavascript:如何强制用户点击选择
【发布时间】:2017-10-10 14:43:00
【问题描述】:

我有一个自动生成的选择框(基于其他字段中的用户决定)。我在“onlick”事件中使用“onclick”事件。

计划:

  1. 如果用户点击它,我必须禁用其他一些字段并打开选择(下拉菜单)。理想的情况是,如果在用户之前的决定之后,这个选择会自动打开 but looks like 我无法通过 JS 打开选择,因为它适用于每种类型的浏览器,所以我必须让用户这样做。

  2. 在第二次单击时,我想获取用户选择的值并对其进行处理。但是用户可能不会选择它或从选择中错过点击并可能会关闭它(它可能会弄乱启用/禁用其他字段)。所以如果用户已经打开了选择,我想强制用户点击一个值。

代码如下:

document.getElementById("infodropdown").onclick = (function() //the select opens + I disable other fields
{
  document.getElementById("infodropdown").onclick = (function() //the user should choose a value
  {
   //do something with the input, and enables other fields
  });
});

如果有任何其他更高级的方法可以让用户选择他/她是否打开下拉列表非常受欢迎。非常感谢您的任何建议!

【问题讨论】:

  • 首先,如果这是针对网站的,那么这样的下拉菜单将是一种糟糕的用户体验。如果您希望用户点击某些内容,只需向他们展示一个选择列表,然后再继续访问网站的新部分。
  • 为什么?你想做什么/建立什么?第二。单击不是更改选择框值的唯一方法;不要过分关注点击次数。不要那样惹恼你的用户。如果需要选择一个值来完成手头的任务,您的用户会这样做;如果他们不想,他们就会离开。如果你试图这样推动你的用户,你只会转移离开页面的机会。
  • 这有点难以解释。我有多个下拉菜单。第一个是使用“sharepointservice”从简单文本框生成的“自动完成”下拉菜单。用户可以在那里选择一个名称,我应该根据外部 Sharepoint 列表中的名称找到一个 ID。但名称不是唯一的,因此可能有多个 ID 参考。所以我生成了这个下拉列表,我想让用户选择正确的 ID 来命名。之后,我必须从名称+ID+日期生成一种新类型的 ID,并且只有在完成此操作后用户才能继续下一步,因此他们必须最终选择。
  • 另外我大约一周前开始使用 JS 和 Sharepoint,所以这是我认为的解决方案,但我愿意接受任何其他更高级的方法来解决它。

标签: javascript jquery html


【解决方案1】:

我认为最好的选择是用定制的下拉列表替换下拉列表。然后你就可以完全控制它了。 使用某些叠加层甚至可能会阻止用户执行任何其他操作,而只能选择列表中的项目。

【讨论】:

  • 这没有回答问题。您还没有足够的代表发表评论。请不要添加不能完全回答问题的答案。
  • 这是一个 XY 问题的完美示例 - OP 想要做某事并决定使用 select 来做,但它没有按预期工作,所以询问 select 问题。这个答案说:回到实际问题并重新考虑替代方案。
猜你喜欢
  • 2019-10-28
  • 2016-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-09
  • 1970-01-01
相关资源
最近更新 更多