Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:在Firefox中的html选择元素上使用键盘时未触发“更改”事件_Javascript_Html_Events_Firefox_Onchange - Fatal编程技术网

Javascript:在Firefox中的html选择元素上使用键盘时未触发“更改”事件

Javascript:在Firefox中的html选择元素上使用键盘时未触发“更改”事件,javascript,html,events,firefox,onchange,Javascript,Html,Events,Firefox,Onchange,如果您有选择: <select id="sel"> <option value="A">option A</option> <option value="B">option B</option> <option value="C">option C</option> </select> 除此之外,现在我们遇到了另一个错误,当用户同时使用鼠标和键盘选择选项时会出现该错误。使用鼠标选择选项B

如果您有选择:

<select id="sel">
  <option value="A">option A</option>
  <option value="B">option B</option>
  <option value="C">option C</option>
</select>
除此之外,现在我们遇到了另一个错误,当用户同时使用鼠标和键盘选择选项时会出现该错误。使用鼠标选择选项B,使用键盘选择选项C,再次使用鼠标选择选项B-最后一个操作不会触发任何更改事件


要解决此问题,您需要将其放入事件处理程序中:

sel.value = sel.value;
sel.value = sel.value;
来自fiddle的代码:

HTML:

JS:


要解决此问题,您需要将其放入事件处理程序中:

sel.value = sel.value;
sel.value = sel.value;

这会将FF保留的select的内部值设置为select中显示的相同值,也可以在sel.value上访问该值。

在Firefox中,如果没有假定的fix.version,它对我来说运行正常?请确保您按照提琴中的说明仔细操作,因为如果您在网页周围单击select将失去焦点,然后FF将正确更新select.Firefox 30的.value。我点击元素,然后点击向上和向下箭头,事件被记录下来。正如我所说的,阅读小提琴的文本,并严格按照它在那里呈现的方式来做。你必须再次使用鼠标、箭头和鼠标。哦,我明白了-我仍然启用了键控处理程序。在元素失去焦点之前,更改事件不会从键盘交互触发。我认为这实际上是一种好的行为,或者至少可以说是一种好的行为。使用键盘与选择进行交互会导致许多不必要的更改事件,因为与鼠标不同,进入选择的唯一方法是通过所有中间的选项进行按键。
sel.value = sel.value;