2011-09-18 61 views
5

我想添加一個onclick選項link_to加載一個模式對話框的方法...我使用rails版本2.3.8,我搜索谷歌,不能這樣做。有人幫我嗎?在rails中添加一個onclick選項來link_to方法?

我的link_to方法如下。

<%= link_to 'All countries',{:controller=>'countries', :action=>'new'}, :remote => true %> 

回答

6

如果您使用的是2.3.8,您沒有:remote => true。如果您嘗試執行ajax操作,則需要使用link_to_remote。

因此,這將是這個樣子:

<%= link_to_remote 'All countries', :url => {:controller => 'countries', :action => 'new'}%> 
<div id="populate_me"></div> 

和你的新方法必須處理的東西,如

countries_controller.rb

def new 
    <do something> 
    render :update do |page| 
    page.replace_html 'populate_me', :partial => 'whatever' 
    end 
end 

更新Ajax請求

如果您想要除了ajax動作之外的onclick,y OU可以直接傳遞到HTML選項:

<%= link_to_remote 'All countries', :url => {:controller => 'countries', :action => 'new'}, :html => {:onclick => 'alert("some javascript executed before ajax")'} %> 
+0

感謝克里斯。 。我將部分內容加載到該div中。但是我想要加載模式對話框。我應該在哪裏編碼? Iam是Rails的新手,對於愚蠢的東西感到抱歉。 – Rosh

+0

更新爲包含ajax請求的onclick –

0

您可以將它添加到鏈接:

, :class => "pop light", :id => "modal_link" 

然後,你的JS顯示了一些ILKE這樣的:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('a.poplight[href^=#]').click(function() { 
     var popID = $(this).attr('rel'); //Get Popup Name 
     var popURL = $(this).attr('href'); //Get Popup href to define size 
     var query= popURL.split('?'); 
     var dim= query[1].split('&'); 
     var popWidth = dim[0].split('=')[1]; //Gets the first query string value 
     $('#' + popID).fadeIn().css({ 'width': Number(popWidth) }).prepend('<a href="#" class="close"></a>'); 
     $('a.close').hide(); 
     var popMargTop = ($('#' + popID).height() + 80)/2; 
     var popMargLeft = ($('#' + popID).width() + 80)/2; 
     $('#' + popID).css({ 
      'margin-top' : -popMargTop, 
      'margin-left' : -popMargLeft 
     }); 
     $('body').append('<div id="fade"></div>'); 
     $('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn(); 
     return false; 
     }); 
     $('a.close').live('click', function() { 
      $('#fade , .popup_block').fadeOut(function() { 
      $('#fade, a.close').remove(); 
      }); 
      return false; 
     });   
     $('#modal_link').click(); 
    }); 
    </script> 
相關問題