2013-05-31 131 views
3

我有一個爲我的電子商務網站簽出的表單。它具有用於裝運選項(快遞,標準等)的單選按鈕,我希望它顯示<%= shipping_delivered_day %>的動態值,使其出現在用戶使用AJAX點擊的按鈕旁邊的p.label_delivery_date標記中。這是我的html:Rails +單選按鈕+ AJAX:如何渲染部分單選按鈕單擊?

<% @shipping_services.each do |ship| %> 
    <% 
    shipping_service = ShippingService.find_by_name(ship.shipping_service) 
    ship_id_value = ""+shipping_service.id.to_s 
    %> 
    <label class="reverse-label"> 
    <span class="check"> 
     <%= radio_button :shipment, :desired_shipping_method, ship_id_value, :checked => "checked" %> 
     <%= radio_button :shipment, :desired_shipping_method, ship_id_value "%> 
    </span> 

    <span class="label"> 
     <%= shipping_service.description %> 
     <p class="label_delivery_date" ></p> 
    </span> 
    <span class="label"> 
     <%= shipping_service.description %> 
    </span> 
    </label> 

<% end %> 

我知道我可以做我的單選按鈕的:onclick選項,但這只是給我一個JavaScript文件。我需要能夠通過我的動態shipping_delivered_day價值,所以我需要鐵軌來處理它。我將如何從單選按鈕點擊發送JS請求?

回答

2

Ruby/Rails實際上提供了一個非常漂亮的方法來做到這一點。所有您需要做的是有你的單選按鈕,請點擊JavaScript函數,然後把該函數的局部呈現,就像這樣:

<script> 
function render_partial() { 
    $('#partial-area').html('<%=j render :partial => "partial" %>') 
} 
</script> 

<%= radio_button :model, :field, :value, :onclick => "render_partial();" %> 
<div id="partial-area"></div> 

,這會使得給部分進入「部分區域」 div單選按鈕被點擊時。對於多個部分,只需要在同一個div上執行多個功能。在您的特定實例中,您需要部分包含一些代碼,以確定您的送貨日期。您可以使用當地人渲染局部圖(render :partial => "ship_3day", :locals => {:p => @product}),並讓您的部分圖像返回適當的結果(<%= p.shipping_delivered_day %>)。