在选择控件上的select和url重定向上启用弹出窗口?

时间:2014-02-25 12:51:48

标签: javascript jquery select onchange

我希望菜单处于选择控制状态,如此

<form id="go">
        <select name="URL" onchange="window.location.href=this.form.URL.options[this.form.URL.selectedIndex].value">
            <option value="">Select option</option>
            <option onclick="openChangePassword()">Change password</option>
            <option value="www.editpersonaldata.com">Edit personal data</option>
            <option value="www.dashboard.com">Dashboard</option>

        </select>
    </form>

这是改变url不是问题,但我有一些选项的问题,因为值是调用函数,onclick =“openChangePassword(),它不是这样工作,任何解决方案。 在某些选项上我需要url重定向其他我需要函数调用吗?

1 个答案:

答案 0 :(得分:0)

正如A. Wolff在评论中指出的那样,你应该向<select>元素添加一个事件监听器。像这样:

<form id="go">
    <select name="URL">
        <option value="">Select option</option>
        <option value="openChangePassword">Change password</option>
        <option value="www.editpersonaldata.com">Edit personal data</option>
        <option value="www.dashboard.com">Dashboard</option>

    </select>
</form>
<script>
document.querySelector('select[name="URL"]').addEventListener('change', function(e){
    var selection = this.options[this.selectedIndex].value;

    if(selection == 'openChangePassword'){
        openChangePassword();
    } else {
        window.location.href = selection;
    }
});
</script>

请注意,我只使用value的{​​{1}}属性,然后决定在侦听器回调函数中做什么。