我想使用选择菜单重定向到另一个页面,但是当我选择“主页”时,它不会将我重定向到主页面。什么都没发生......
<select>
<option>Select a menu</option>
<option><%= link_to 'Home', '/' %></option>
</select>
感谢您的帮助。
答案 0 :(得分:12)
您不能在SELECT标记内放置链接。这是HTML的限制,而不是Rails。
你应该做的事情是这样的:
<%= select_tag(:menu_select, options_for_select([ 'Home', '/' ])) %>
然后,您需要确保在选择新链接时加载页面。这可以通过jQuery使用类似的东西来完成:
$('#menu_select').bind('change', function() { window.location.pathname = $(this).val() });
更改表单选择后,将加载新URL。
答案 1 :(得分:5)
link_to
助手输出一个HTML超链接,当嵌套在option
元素中时,该超链接无效。您应该更改选项,以便它们具有以下格式:
<option value="/">Home</option>
然后您可以使用一些JavaScript来观察下拉列表的onchange
事件,并将document.location.href
设置为所选选项的值。这将执行重定向。
或者,您可以在提交表单的下拉列表旁边有一个 Go 提交按钮,然后让Rails使用{{1}执行服务器端重定向到所选选项的页面帮助者。
答案 2 :(得分:3)
这也有效:
<select onChange="if(this.selectedIndex!=0) self.location=this.options[this.selectedIndex].value">
<option value="/">Home</option>
</select>