如何在具有相同值的两个选项之间更改时检测 Select 更改事件

How to detect a Select change event if changing between two options with the same value?

本文关键字:选项 两个 之间 事件 检测 Select      更新时间:2023-09-26
<select>
   <option value="">Select</option>
   <option value="10000">Minimum Coverage</option>
   <option value="25000">Average Coverage</option>
   <option value="">Other</option>
</select>

我必须让"选择"和"其他"都有空值,因为字段上的验证规则不允许空字符串或数值以外的任何内容。

底线是,我需要能够检测用户何时处于"选择"并单击"其他"。可能吗?

编辑:onChange似乎没有触发。

较短的版本是:

 var mySelect = document.getElementById('mySelectId');
 mySelect.onchange = (event) => {
     var inputText = event.target.value;
     console.log(inputText);
 }

您可以检查 selectedIndex 属性。如果希望每次项更改时都发生某些操作,请使用 onchange 事件绑定。

document.getElementsByTagName('select')[0].onchange = function() {
  var index = this.selectedIndex;
  var inputText = this.children[index].innerHTML.trim();
  console.log(inputText);
}

小提琴

change事件肯定会触发,即使更改的选项具有相同的值:

jsfiddle.net/kyw2E

change 事件处理程序中,可以检查 this.selectedIndex 属性以确定选择了哪个<option>。 然后,您可以检查所选选项的 text 属性(如果有帮助):

coverageSelector.onchange = function (e) {
    var selectedOption = this[this.selectedIndex];
    var selectedText = selectedOption.text;
}