【问题标题】:Removing cost when radio-button is selected, Ruby on rails选择单选按钮时移除成本,Ruby on rails
【发布时间】:2017-10-02 23:08:51
【问题描述】:

我正在通过创建电子商务应用来学习 ruby​​ on rails。

我的问题是,如果客户选择了Pick up in store 或总金额高于$100,我将如何删除delivery cost

因此,当Pick up in store 或总金额大于$100 时,应删除运费。

我使用ifelse 来获得所需的结果。但是通过使用 Total cost 在选择 radio buttons 时不会更新。

这是没有ifelse的代码

    <tr>
            <th><p>Products Total: </p></th>
            <th><p>Delivery Cost: </p></th>
            <th><p>Total Cost: </p></th>
    </tr>
    <tr>
      <td><p ><%= @cart.total_price_usd %></p></td>
      <td><p ><%= @del_cost_usd %> </p></td>
      <td><p ><%= @cart.total_price_usd + @del_cost_usd%></p></td>   
    </tr>

    <div>   
      <li><%= f.radio_button :pick_up, "1", checked: false, class: 'delivery-options', data: { question: "Pick up items in store" }  %> 
      <%= f.label :pick_up, "Pick up items in store" %></li>

     <li><%= f.radio_button :pick_up, "0",  checked: true, class: 'delivery-options' , data: { question: "Have items sent by mail" } %> 
     <%= f.label :pick_up, "Have items sent by mail", class: ''  %></li> 
    </div>

谁能告诉我我想要的结果。

对于有经验的人来说,这可能是容易的点

TIA 码娘

【问题讨论】:

  • 有人可能会直接回答。我不能流利地给你一个“我的头顶”的答案,而是查找“使用 JavaScript 隐藏元素”。我在我的一些应用中使用它来达到同样的目的。

标签: ruby-on-rails ruby radio-button e-commerce


【解决方案1】:

我有一个解决这个问题的计划。

给你显示标签和交付成本值的 DOM 一个类来切换它们的显示属性:

<p class="delivery-cost-fields">Delivery Cost: </p>
<p class="delivery-cost-fields"><%= @del_cost_usd %> </p>

对于您的“在商店提货”单选按钮,将其定义为“onchange”,如下所示:

<%= f.radio_button :pick_up, "1", checked: false, class: 'delivery-options', data: { question: "Pick up items in store" }, onchange: "$('.delivery-cost-fields').toggleClass('hidden', true)"  %> 

对于您的“通过邮件发送项目”单选按钮,将其定义为“onchange”,如下所示:

<%= f.radio_button :pick_up, "0",  checked: true, class: 'delivery-options' , data: { question: "Have items sent by mail" }, onchange: "$('.delivery-cost-fields').toggleClass('hidden', false)" %>

定义一个隐藏的css类:

.hidden {display: none;}

希望对您有所帮助。

【讨论】:

  • 我喜欢这个。我很好奇它是否有效。漂亮而低调。
  • @Nhã Huỳnh,除了行 `

    ` id="delivery-cost" 似乎没有对这条线有任何影响。这是为什么?我该怎么做才能让它消失?
  • @codegirl 我刚刚修正了我的答案。我们应该切换description p 标签和Delivery Cost 的value p 标签的显示属性。 Prev 我只是让描述标签消失。 :D
  • @Nhã Huỳnh,谢谢,这两个字段现在都消失了。但是运费仍然会添加到total cost,因为在这行&lt;td&gt;&lt;p &gt;&lt;%= @cart.total_price_usd + @del_cost_usd%&gt;&lt;/p&gt;&lt;/td&gt; 中是否可以在选择店内取货时不将total_price_usd 添加到del_cost_usd
  • 我认为它可以从您的后端解决,或者您应该使用本地计算或 ajax 之类的东西来解决这个问题。 :D
猜你喜欢
  • 1970-01-01
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多