我有一个电子商务网站的结帐表格。它具有用于运输选项( express 、标准等)的单选按钮,我希望它显示 <%= 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>
当单击单选按钮时,这会将给定的部分呈现到“部分区域”div 中。对于多个部分,只需让多个函数作用于同一个 div。在您的特定实例中,您希望部分包含一些代码来确定您的发货日期。您可以使用 locals (
render :partial => "ship_3day", :locals => {:p => @product}
) 渲染部分并让您的部分返回适当的结果 ( <%= p.shipping_delivered_day %>
)。关于ruby-on-rails - Rails + 单选按钮 + AJAX : How to render partial on radio button click?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16863443/