我希望菜单处于选择控制状态,如此
<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重定向其他我需要函数调用吗?
答案 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}}属性,然后决定在侦听器回调函数中做什么。