【发布时间】:2014-01-24 01:43:19
【问题描述】:
我知道你可以使用 select 上的 onchange 事件来触发 JavaScript 函数,但是如果他们选择了当前选中的选项呢?
这样做的原因是我想要一个包含一堆网站的下拉列表。如果您愿意,这可以用作一种跳转页面。当用户选择一个站点时,所选站点会在新窗口中打开。现在,如果他们关闭新选项卡/窗口,则选择是他们选择的最后一个选项。如果用户想再次访问同一个网站,onchange 事件不会触发。
我知道您可以将 select 选项改回默认选项,并使用 null 值,如下所示:
html
<select onChange="jsFunction(this.value)" id="selectOpt">
<option value="">1</option>
<option value="websiteURL2">2</option>
<option value="websiteURL3">3</option>
</select>
javascript
function jsFunction(opt){
window.location = opt;
document.getElementById("selectOpt").options[0].selected = true;
}
但我想知道是否可以不这样做。
我可以使用 HTML 选择触发事件而不更改其值吗?
【问题讨论】:
-
您所描述的内容不应使用
<select>元素,因为这是不合适的。相反,您应该使用链接列表并为其设置样式。这样,无论用户是使用桌面设备还是移动设备,还是仅使用键盘的用户,它都能始终如一地执行。 -
我真的不想要一个同时显示的链接列表,因为它是一个很长的列表。
-
我从来没有说过你应该同时显示一个平面链接列表,我说你应该使用链接列表而不是
<select>元素。您仍然可以设置列表样式并使用 javascript 来切换它的显示方式。 -
@zzzzBov 你能描述一下你在这里的建议吗?它是某种折叠列表吗?
-
@zzzzBov 我正在和 Luxelin 聊天,他建议使用引导下拉菜单; getbootstrap.com/components/#dropdowns。我认为这种解决方案也可能是您的建议,对吧?
标签: javascript html forms html-select