[英]Rails + Radio Buttons + AJAX: How to render partial on radio button click?
我有一個電子商務網站的結帳表格。 它具有用於運輸選項(快速,標准等)的單選按鈕,並且我希望它顯示動態值<%= shipping_delivered_day %>
以顯示在用戶使用AJAX單擊的按鈕旁邊的p.label_delivery_date
標簽內。 這是我的html:
<% @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
值,因此我需要使用rails來處理它。 如何通過單選按鈕單擊發送JS請求?
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>
單擊單選按鈕時,這會將給定的部分渲染到“ partial-area” div中。 對於多個局部,只需在同一個div上作用多個函數即可。 在您的特定實例中,您希望您的部分包含一些代碼,這些代碼將確定您的發貨日期。 您可以使用局部render :partial => "ship_3day", :locals => {:p => @product}
( render :partial => "ship_3day", :locals => {:p => @product}
),並使局部render :partial => "ship_3day", :locals => {:p => @product}
返回適當的結果( <%= p.shipping_delivered_day %>
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.