如果我打开下拉列表选项,是否有办法触发事件,并选择相同的值没有点击以切换焦点?
我试过
onblur
,但仅当我在选择之外额外点击时才有效。
onchange
,但只有在我选择其他值时才有效。
我需要触发一个事件,只要我打开下拉列表并选择任何内容,无论它是相同还是不同。
<select name='show1' id='show1' onblur='dosomething(this);'>
<option value='1'>One</option>
<option value='2'>Two</option>
</select>
答案 0 :(得分:1)
使用哪个库或框架并不重要,但这很简单。你基本上是在寻找两件事:
测试是否单击了控件。
测试是否已选择值(任何值),仍然选择 - 或 - 。
数字2可以用类似的东西来实现
var elem = document.getElementById("ddlViewBy");
var value = elem.options[elem.selectedIndex].value;
测试它是非空的是一件简单的事情。
答案 1 :(得分:1)
我认为您必须使用onClick事件并将之前选择的项目存储在变量中。
这是一个我认为可以使用一些重构的简单示例: - )
var dropboxOpen = false,
oldItem = null;
function onClick(e) {
if (dropboxOpen) {
if (oldItem && oldItem === e.target.value) {
console.log('same selected');
}
oldItem = e.target.value;
}
dropboxOpen = !dropboxOpen;
}
答案 2 :(得分:0)
如果你使用jQuery
您可以尝试 focus() 事件。