Javascript 当选项已被选中时,如何获取HTML Select元素的通知

Javascript 当选项已被选中时,如何获取HTML Select元素的通知,javascript,html,Javascript,Html,我有一个带有3个选项的HTML选择元素。如果用户选择第三个选项,我想将它们重定向到另一个页面。我最初的实现是这样的: Javascript: <script type="text/javascript"> function handledropdown(e) { var profile = e.options[e.selectedIndex].text; //if the option selected is not 'Option3', do nothing if (prof

我有一个带有3个选项的HTML选择元素。如果用户选择第三个选项,我想将它们重定向到另一个页面。我最初的实现是这样的:

Javascript:

<script type="text/javascript">
function handledropdown(e) {
 var profile = e.options[e.selectedIndex].text;
 //if the option selected is not 'Option3', do nothing
 if (profile == 'Option3') {
     window.location.href="some-page.php";
 }
}    </script>

函数handledropdown(e){
var profile=e.options[e.selectedIndex]。文本;
//如果选择的选项不是“选项3”,则不执行任何操作
如果(配置文件==“选项3”){
window.location.href=“some page.php”;
}
}    
HTML:


选择1
选择2
选择3
这种方法可以工作,但是如果已经选择了选项3,那么触发onChange事件的唯一方法就是取消选择它并重新选择它-在已经选择它时简单地单击它不会触发更改事件。我试图通过添加onClick事件处理来解决这个问题,如下所示:

<select  id='test_dd' name='options' onChange='handledropdown(this)' onClick='handledropdown(this)' >
<option title='Option1' value='1' >Option1</option>
<option title='Option2' value='2' >Option2</option>
<option title='Option3' value='3' >Option3</option>
</select>

选择1
选择2
选择3
这在Safari中似乎很好,但在IE和Firefox中,如果已经选择了Option3,那么只要单击select元素打开选项,就会重定向到重定向页面(在Chrome中,它似乎根本不起作用)

有什么办法可以解决这个问题吗?

只要使用

 $("#test_dd").mouseup(function() {
    var open = $(this).data("isopen");

    if(open) {
        if ($(this).val()=="3")
            alert("hi")
    }

    $(this).data("isopen", !open);
});

一个问题是,如果您单击第三个选项时,它会将您重定向到另一个页面,那么如何才能看到选定的第三个选项?我的意思是,当你选择选项3时,你正在移动到另一个站点。我说的对吗?最简单的方法是,如果用户在重定向后在浏览器中点击“后退”——现在他回到了原始页面,但选择元素中已经选择了选项3,这不起作用——在JSFIDLE示例中,注释掉(或删除)窗口重定向,只留下警报选择选项3,它将起作用一次。现在,当选项3已被选中时,您不能通过简单地点击选项3使其再次发出警报,您必须先选择另一个选项,然后重新选择3。这相当于我最初的实现。事实上,如果您将JSFIDLE更改为“onclick”,它可以工作——谢谢!哦,很抱歉,这是我的错误,我发送了正确的代码,但忘记更新fiddle。事实上,进一步检查后,它不起作用。您发送的jquery代码,加上“更改”,相当于我最初的实现,加上“单击”,相当于我的第二次尝试——也就是说,在IE和Firefox上,如果已经选择了选项3,那么只要您单击选择项,它就会触发警报。我不明白您的意思,这不是您想要的吗??选择选项3后开火?
 $("#test_dd").mouseup(function() {
    var open = $(this).data("isopen");

    if(open) {
        if ($(this).val()=="3")
            alert("hi")
    }

    $(this).data("isopen", !open);
});