Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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 即使值未更改,也会在更改时触发_Javascript - Fatal编程技术网

Javascript 即使值未更改,也会在更改时触发

Javascript 即使值未更改,也会在更改时触发,javascript,Javascript,我们有这个选择,它被用来在不同类别的链接之间导航。狗将用户带到狗链接,猫将用户带到猫链接,等等 以下是我无法完全使用的用例: 1用户选择狗 2用户在dog链接中向下滚动一点 3用户再次点击狗 此时,我希望页面滚动到dogs部分的顶部,但是第二次选择dogs没有任何作用,因为select的值没有改变,onChange也不会触发 我应该提到,出于可访问性方面的考虑,我们已经将onClick排除在外 从可访问性的角度来看,您不希望完全依赖onClick事件来执行此操作 然而,正如本文所述,在大多数现代

我们有这个选择,它被用来在不同类别的链接之间导航。狗将用户带到狗链接,猫将用户带到猫链接,等等

以下是我无法完全使用的用例:

1用户选择狗

2用户在dog链接中向下滚动一点

3用户再次点击狗

此时,我希望页面滚动到dogs部分的顶部,但是第二次选择dogs没有任何作用,因为select的值没有改变,onChange也不会触发


我应该提到,出于可访问性方面的考虑,我们已经将onClick排除在外

从可访问性的角度来看,您不希望完全依赖onClick事件来执行此操作

然而,正如本文所述,在大多数现代浏览器中,按下表单控件元素(包括)上的enter键将触发onClick事件

对于较旧的浏览器,最好的方法是查找一个keydown事件,其中输入键的keycode13

我认为对于您的情况,最好的解决方案是在按下enter键的位置查找onChange、onClick和keydown,然后采取相应的措施


这里有一个用于检查select元素上的事件的示例。

请显示为此编写的代码如何更改select.selectedIndex=0,post user selection?@Arvind,这会更改select中的显示值,这不是很好。使用blur事件如何?但用户在选择相同的选项后仍然必须单击其他地方。使用模糊事件不是一个好主意。首先,用户必须从select中删除焦点才能执行操作。其次,如果用户使用键盘导航页面,从一个元素切换到另一个元素,当用户在其他地方导航时临时访问select时,select会触发模糊事件。