2016-04-05 85 views
2

基本上,我試圖從軌道button_to得到下拉按鈕,這是通過ajax完成的,當有人點擊該按鈕時,它通過ajax渲染顯示呈現購物車<ul>標記。rails button_to type =「button」

自舉:

<button class="btn btn-primary dropdown-toggle" type = "button" data-toggle="dropdown"><span class="glyphicon glyphicon-shopping-cart"></span> <span class="badge"><%="#{@cart.line_items_count}" %></span></button> 

導軌button_to:

%= button_to navbar_cart_path, {remote :true, method: :get, :class => 'btn btn-primary dropdown-toggle', data_toggle: "dropdown"} do %> 
      <span class="glyphicon glyphicon-shopping-cart"></span> 
      <span class="badge" id="cart-badge-id"><%="#{@cart.line_items_count}" %></span> 
     <% end %> 

看着HTML源代碼時,此產生類似的按鈕標籤,除了,引導按鈕具有屬性類型= 「按鈕」,但是軌道產生type =「submit」

bootstrap:

<button class="btn btn-primary dropdown-toggle" type = "button" data-toggle="dropdown"><span class="glyphicon glyphicon-shopping-cart"></span> <span class="badge">5</span></button> 

導軌:

<form class="button_to" method="get" action="/navbar_cart data-remote="true"> 
    <button class="btn btn-primary dropdown-toggle" data_toggle="dropdown" type="submit"> 
      <span class="glyphicon glyphicon-shopping-cart"></span> 
      <span class="badge" id="cart-badge-id">5</span> 
</button></form> 

如果不論它甚至有可能甚至使一個下拉菜單,這種方式的另一個大問題。

回答

0

如果你只是想要一個下拉可以使用select_tag('attr', options_for_select())讓你降下來,然後做這樣的事情揭開序幕,你想做任何AJAX的東西:

$('#my_select_dropdown').change(function(){ 
    //do stuff here 
}); 

編輯:這裏是一個鏈接看的情況下,select_tag文檔您想了解更多詳細信息:http://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tag

+0

不,我想使下拉菜單,我列出了我的購物車產品,圖片,數量等。 –

0

只是覆蓋在html_options類型屬性參數,它是要傳遞的類名的元素相同的哈希方法:

<%= button_to navbar_carth_path, {remote: true, method: :get}, {"class": "btn btn-primary dropdown-toggle", "data-toggle": "dropdown", "type": "button"} do %> 

我想喲也爲選項添加HTML選項相同的散列內的軌道散列這是不一樣的,選項哈希(第一批)的選項幫手本身的第二哈希對應屬性,它要應用所呈現的元素值:

​​

檢查方法here的簽名。

更新你也傳遞remote :true參數錯了,你有遠程字和實際值,它解析爲一個符號之間的空間,它應該是:remote: true。在另一方面,我建議附上報價,不僅是它的值之間的幫助類的所有HTML選項(如data-toggle),這樣就可以使用連字符而不是短橫線(引導選項data-toggle據我所知,沒有data_toggle

+0

是的,已經嘗試過了。它不覆蓋或改變任何東西,它是否適合你? –

+0

@marisancans是的它,請看我更新的答案 –

+0

嘿,改變了你的代碼:<%= button_to navbar_cart_path,{「type」:「button」,method :: get,remote:true,class:「btn btn-primary dropdown-toggle「,」data-toggle「:」dropdown「,type:」button「} do%>

0

如此看來比如當使用rails button_to和添加數據時:屬性不會覆蓋type =「button」,所以我嘗試了一些實驗,並提出了這個問題。

<%= link_to navbar_cart_path, { method: :get, remote: true, class: "btn btn-primary dropdown-toggle", "id": "cart-button", "type": "button", "data-toggle": "dropdown" } do %> 
      <span class="glyphicon glyphicon-shopping-cart"></span> 
      <span class="badge" ><%="#{@cart.line_items_count}" %></span> 
     <% end %> 

這將生成HTML代碼:

a class="btn btn-primary dropdown-toggle" id="cart-button" type="button" data-toggle="dropdown" data-remote="true" data-method="get" href="/navbar_cart"> 
      <span class="glyphicon glyphicon-shopping-cart"></span> 
      <span class="badge" >5</span> 

我在哪裏可以再使用AJAX GET呈現在下拉列表標籤@cart部分

相關問題