簡體   English   中英

Rails +單選按鈕+ AJAX:如何在單選按鈕單擊時渲染部分內容?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM