javascript 选择输入上一个选择

标签 javascript

我对 javascript 没有太多经验,所以我不确定是否/如何做到这一点。所以我有许多精选组件和几个选项。所有组件的这些选项之一是“全部”。

现在我需要确保不超过一个组件选择了“全部”。我正在使用一些输入字段并进行一些验证以确保此条件成立。但是我不知道如何执行以下操作。当用户从字段中选择“全部”时,这是不允许的,因为页面上已经有“全部”,将之前的选择放在原来的位置。

到目前为止我所拥有的是(组件是当前选择的组件):

selectedName = component.options[component.selectedIndex].innerHTML;
if (selectedName == 'All') {
  if (emptyAllSpace() == 1) {
    //here I do all the mumbo jumbo needed and assign to the hidden field the name of 
    //the component
  } 
  else {
    //Here is where I should put back the old selection value. 
  }
 }

现在 else 分支是我需要解决问题的地方。那么我怎样才能/在当前选择的选项之前获得所选选项有多困难。

我也很感兴趣这会有多困难,因为我也可以走另一条路线,只需选择第一个不是“全部”的选项,但如果不太耗时的话,我宁愿避免这种情况。

问候, 博格丹

最佳答案

使用 onchange 事件进行选择。首先存储默认值,并在更改时重新分配它。或者使用 2 个变量来保留最后 2 个选定的选项(?)。

更新

使用onfocus获取更改之前的值,http://jsfiddle.net/gQHqj/ 。 在此处理程序中,您可以注册以下 onchange,并将该值存储在闭包中(onfocus 的作用域对象)。

更新2

我知道有些事情有点可疑,但没有时间检查,如果用户没有移动到另一个元素或单击该元素仍然处于焦点的某个位置,并且 onfocus不会被调用,而 onchange 会被调用(如果用户更改该值),并且上一个值错误。所以我想出了一个错误修复,你应该有这个结构:http://jsfiddle.net/gQHqj/4/

关于javascript 选择输入上一个选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7077289/

相关文章:

javascript - 使用 Knockout.js 将 Canvas 绑定(bind)到 UI

javascript - 安装 Nodejitsu

javascript - SSE (EventSource) 在 1 小时 22 分钟后超时。有什么方法可以保持它的持久性吗?

javascript - 如何使事件 DOM 监听器适应 Google Maps JavaScript API v3.35

javascript - typescript 错误 TS1128 : Declaration or statement expected

javascript - 'explode' 效果是否有爆炸 block 数量的最大值?

javascript - 如何正确重置 Vue Composition Api react 值

javascript - Backbone 中的 Jquery live() 替代方案

javascript - 如何用 html 元素替换粗体、下划线等文本?

javascript - 如何使用 html 子元素在 contenteditable div 中获取插入位置?