我想提供一个选择菜单,当用户选择一个选项时,禁用该菜单(保留选择)。
我的代码如下:
my_controller.rb:
def action
@menu_disabled = true
end
my_helper.rb:
def menu_tag
select_tag :menu_name,
options_from_collection_for_select(@menu_options, 'id', 'title'),
:prompt => 'my prompt',
:disabled => @ menu_disabled
end
_menu.erb:
<%= menu_tag %>
index.html.erb:
<!-- headers, description, etc -->
<%= render :partial => 'menu' %>
<!-- footers, etc, -->
<script>
$(document).ready(function() {
$('#menu_name').change(function() {
$.ajax({
url: "<%= action_path %>",
data: {
selection_id : $('#menu_name').val()
},
dataType: "script"
});
});
});
</script>
action.js.erb:
$('#menu_name').html("<%= escape_javascript(render :partial => 'menu') %>");
这不起作用。菜单保持功能,并在选择时显示提示。其他更改(例如,修改@menu_options
中的action
集合)会正确显示。发生了什么事?
Rails版本:4.0.2
Ruby版本:2.0.0
Jquery-rails gem版本:3.1.2
浏览器:Safari 8.0.4
答案 0 :(得分:1)
使用replaceWith
代替html
,因为您要替换整个select
元素。