我有一个选择,我需要在每次选择一个选项时触发一些js,即使它已被选中。 例如:
<select id="select_one">
<option value="">Choose One...</option
<option value="one">One</option>
<option value="two">Two</option>
</select>
如果有人选择“一个”,我想解雇functionOne()。但是,当选择“one”时,如果用户再次选择“one”,我想再次触发functionOne()。因此,这意味着onChange不起作用,因为选择不会改变。
有人有任何想法吗?
答案 0 :(得分:4)
与某些当前答案相反,您实际上并未在IE中的click
上收到<option>
个事件。
检测已被选中的选项的唯一可靠方法是将onclick
处理程序放在<select>
上。当然,这也会检测到select元素上的任何其他点击,因此根据functionOne()
正在做什么,这可能也不安全。
你可能会选择看起来像选择但不喜欢的东西,例如带有按钮的弹出式div。你想做什么?如果您正在尝试执行“跳转菜单”,其中选择一个选项导航到新页面:不,这是一个陈旧且不可信的机制,存在严重的可用性问题。
答案 1 :(得分:0)
将onClick添加到<option>
标记
答案 2 :(得分:0)
触发onSelect后,将选择值更改为“Add Another”?
例如。 forst选项的id为#selectBox,值为'',html为“Select One”。
onChange,检索值$('#selectBox').val();
并在操作后转身并转到$('#selectBox').val('').html('Select Another');
答案 3 :(得分:0)
为每个选项标记添加onclick
偶数。在函数内部执行:
function() {
var timesClicked = $(this).attr('times-clicked') || 0;
$(this).attr('times-clicked', ++timesClicked);
if (timesClicked == 1) {
functionONe();
}
else if (timesClicked == 2) {
functionTwo(); // and so on
}
}