[英]How can I ad onselect into select tag to change values of the second select tag
[英]how can i change this behaviour of select tag in IE
这是我的问题:
我有一个带有两个选项的选择标签-“ Hello”和“ World”
HTML
<select>
<option> Hello </option>
<option> World </option>
</select>
在IE中,当您选择一个选项并将其变为所选选项时,蓝色高亮显示将一直保留,直到您单击选择标记之外的其他位置为止。 (在Firefox中不是那样)
所以我写了一个脚本,当选择了一个选项时,该脚本从元素上移开了焦点。
脚本
$('select').change(function() {
$(this).blur();
但是仍然存在一个小问题:如果我选择“ Hello”然后获得“ Hello”选项-焦点将保持不变,并且蓝色突出显示。 但是,如果我选择打招呼,然后选择世界选项,则一切正常。.我读到对于选择菜单,当选择了一个选项时,发生更改事件!!但是该选项必须与先前选择的选项不同才能触发更改事件。
有没有办法即使再次选择相同的选项也不会出现这种蓝色突出显示。
您可以在select选项上使用click事件,假设select的ID为select
:
$('option').click(function() {
$('#select').blur();
});
演示: http : //jsfiddle.net/DJCe7/
编辑
如果选项是动态添加的,则执行(假设select具有id select
:)
$('#select').on('click', 'option', function() {
$('#select').blur();
});
编辑2
按回车键得到相同的结果:
$('#select').keydown(function(event) {
// Enter pressed
if(event.keyCode == 13) {
$('select').blur();
}
});
演示: http : //jsfiddle.net/DJCe7/10/
如何使焦点模糊? 不确定如何在IE中表现出来。
$('select').focus(function() {
$(this).blur();
});
编辑:愚蠢的我,您实际上可以只使用CSS删除轮廓。 无需使用Javascript!
select, select:focus, select:active { outline: none; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.