Javascript 从“选择”下拉列表中选择项目时自动重定向
此页面按照我希望的方式进行操作:Javascript 从“选择”下拉列表中选择项目时自动重定向,javascript,jquery,html,Javascript,Jquery,Html,此页面按照我希望的方式进行操作: 但是我想找到一种更好的使用jQuery的方法,有谁能告诉我一个使用jQuery来实现这一点的好脚本吗?我还没有测试过这个,但我认为它与您引用的页面上的示例相当 $(document).ready( function() { $('#select').change( function() { location.href = $(this).val(); }); }); <select id="select"> <
但是我想找到一种更好的使用jQuery的方法,有谁能告诉我一个使用jQuery来实现这一点的好脚本吗?我还没有测试过这个,但我认为它与您引用的页面上的示例相当
$(document).ready( function() {
$('#select').change( function() {
location.href = $(this).val();
});
});
<select id="select">
<option value="#">Select a location</option>
<option value="location.htm">Location</option>
<option value="other.htm">Other</option>
</select>
您不需要预先打包的脚本,只需要几行代码
// get your select element and listen for a change event on it
$('#selectEl').change(function() {
// set the window's location property to the value of the option the user has selected
window.location = $(this).val();
});
其他人对此给出了很好的答案,但是 只是一个警告,当有人通过键盘导航时,IE处理选择列表的方式与其他浏览器非常不同。它将每按一次向上键/向下键统计为一次更改事件,这意味着您无法通过键盘导航重定向选择列表,从而导致无法使用鼠标的用户无法访问。其他浏览器在触发onChange之前等待enter事件或选择列表中的选项卡。我花了很长很长时间试图找到一个解决方法,但从来没有完全解决这个问题 我不知道jQuery是否解释了这一点;希望是这样,为了您的站点的可访问性
也许值得让选择列表选择去哪里,然后在旁边有一个按钮来激活重定向。除非你不关心IE用户的可访问性。正如丹尼尔所建议的,简单的答案是——你不应该这样做,这对可用性和可访问性都有害 选择列表行为取决于用户的操作系统、浏览器和用户设置的组合。此外,onchange事件并不是以标准方式跨浏览器实现的 无论用户是使用鼠标、键盘、鼠标滚轮还是语音、屏幕阅读器,都应该能够从选择列表中获得预期的行为。。。。如果您确实将事件绑定到onchange,那么它决不应该使用户的注意力从选择列表中移开,例如页面重定向 就我个人而言,我经常使用键盘浏览网站表单,如果出现这种情况,我会使用jQuery尖叫:
$('#selectEl').bind("change keyup",function()
{
// set the window's location property to the
// value of the option the user has selected
window.location = $(this).val();
});
用于通常更改选项和箭头键
您可能可以使用此扩展:
我还没试过
还有一些鼠标选项可以添加到绑定。
转到:api.jquery.com/category/events/mouse-events/
任何在该页面上有名称的函数,您都可以
在上面的绑定中使用“name”。就像我对你做的一样
change=>'change'和mouseup=>'mouseup'-easy peasy:
和平
如果此问题对您特别重要,请查看:-它有一个跨浏览器实现,可用于IE。不幸的是,该代码无法处理可能同时使用键盘和鼠标的用户。例如,鼠标滚轮对整个问题造成了巨大的影响,因为每个滚轮上的项目都会触发另一个onChange.Ah。触摸。我对此很感兴趣,所以我会试着看看我是否能找到任何东西。+1,每个人都错了,当笔记本电脑键盘用户抱怨时,他们会表现得很惊讶。要在所有按键、更改和模糊事件中都做到“正确”,这是一件非常棘手的事情。在我看来,还是缺少了一个?无论如何它不是jQuery,但是对于一些特别的东西,使用内联代码更容易、更简单。我确实需要这样的东西,但是我没有添加内部值url,而是添加了我的值,并使用get:thanking中的值在jQuery中创建了url