Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 轨道&x2B;单选按钮&x2B;AJAX:如何在单选按钮单击时渲染部分?_Ruby On Rails - Fatal编程技术网

Ruby on rails 轨道&x2B;单选按钮&x2B;AJAX:如何在单选按钮单击时渲染部分?

Ruby on rails 轨道&x2B;单选按钮&x2B;AJAX:如何在单选按钮单击时渲染部分?,ruby-on-rails,Ruby On Rails,我有一个电子商务网站的结账表。它有用于装运选项(快递、标准等)的单选按钮,我希望它显示一个动态值,显示在用户使用AJAX单击的按钮旁边的p.label\u delivery\u date标签中。这是我的html: <% @shipping_services.each do |ship| %> <% shipping_service = ShippingService.find_by_name(ship.shipping_service) ship_id_va

我有一个电子商务网站的结账表。它有用于装运选项(快递、标准等)的单选按钮,我希望它显示一个动态值
,显示在用户使用AJAX单击的按钮旁边的
p.label\u delivery\u 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 %>

“选中”%>

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>

函数render_partial(){
$(“#部分区域”).html(““部分”%>”)
}
“渲染_部分();”%>
这将在单击单选按钮时将给定的部分渲染到“部分区域”div中。对于多个partial,只需在同一个div上使用多个函数即可。在您的特定实例中,您希望partial包含一些确定发货日期的代码。您可以使用局部变量(
render:partial=>“ship_3day”,“locals=>{:p=>@product}
)渲染部分,并让部分变量返回相应的结果(