我有一个选择下拉项目。当用户选择和项目我需要重定向到item_id的edit_item_path。例如如果用户选择id = 5的项目,我需要重定向到items / 5 / edit path
如何在rails 3和jquery中执行此操作?
答案 0 :(得分:3)
让我们说你的下拉列表如下:
<select id="editable_pages">
<option value="1">Edit 1</option>
<option value="2">Edit 2</option>
</select>
在这种情况下,jquery片段应该有效:
$('#editable_pages').change(function() {
window.location = "items/+ $(this).find(":selected").text() +/edit";
});
更好的解决方案是使用rails路由助手。为此,您可以为每个选项添加带有url的html5数据属性,例如:
<option value="1" data-edit-url="<%= edit_item_url(1) %>">Edit 1</option>
$('#editable_pages').change(function() {
window.location = $(this).find(":selected").data('edit-url');
});
答案 1 :(得分:2)
我会做这样的事......
<% @item_paths = {""=>"", "Item 5" => edit_item_path(5), "Item 4" => edit_item_path(4)}%>
<%= select_tag :edit_item, options_for_select(@item_paths)%>
<script type="text/javascript">
$('#edit_item').change(function() {
window.location = $(this).find('option:selected').val();
});
</script>