我正在尝试构建一个选项菜单,其选项只指向URL:
# Ruby:
form_tag "", :method => 'get' do
select_tag "", options_for_select([["Memberships", memberships_url], ["Transactions", transactions_url]])
end
# jQuery:
$('form').on('change', function() {
$(this).submit();
});
但是,这不起作用。我错过了什么?
答案 0 :(得分:1)
您所做的只是提交不作为重定向处理的表单,您需要为表单onsubmit
事件添加一个额外的挂钩来处理重定向,但根据您的概念,这似乎是不必要的。
这是如何运作的:
$('form select').on('change', function() {
window.location.href = $(this).val();
});
或者jQuery中的所有内容我相信你可以使用
$('form select').on('change', function() {
$(location).attr('href',this.val());
});
显然这个钩子将适用于所有form select
DOM对象,所以我建议像这样添加一个id
(注意我删除了表单标签,因为它不需要功能)
select_tag "navigation", options_for_select([["Memberships", memberships_url], ["Transactions", transactions_url]])
$('#navigation').on('change', function() {
window.location.href = $(this).val();
});
您还可以使用
模拟重定向而不是链接点击window.location.replace($(this).val());