2015-04-01 80 views
0

我想提出一個選擇菜單,當用戶選擇一個選項時,禁用該菜單(保留選擇)。如何在rails web應用程序中選擇時禁用選擇標記?

我的代碼如下:

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') %>"); 

這是行不通的。菜單保持正常運行,並在選擇時顯示提示。其他更改(例如,修改action中的@menu_options集合)會正確顯示。發生了什麼?

Rails的版本:4.0.2

的Ruby版本:2.0.0

jQuery的軌道寶石版本:3.1.2

瀏覽器:Safari瀏覽器8.0.4

+0

謝謝!正是我需要的。 – executor21 2015-04-02 03:48:19

回答

1

使用replaceWith代替因爲您想要替換整個select元素,因此需要使用html

相關問題