繁体   English   中英

Rails 3如果使用jQuery声明?

[英]Rails 3 if statement with jQuery?

我有一个使用此railscast设置的多步Rails 3表单: http: //railscasts.com/episodes/217-multistep-forms,并且我使用了另一个Railscast为我的应用程序实现Stripe付款: http:// railscasts.com/episodes/288-billing-with-stripe

在我的应用中,如果向用户收取的金额为0,则付款表格会通过jQuery隐藏。

$(document).ready(function() {
  var xyz = $("span#total").text();

  if (xyz == 0){
    $("div#stripefields").hide();
  };    
});

我想要做的就是告诉我的Rails应用程序,如果向用户收取的金额为0,则不需要Stripe付款字段即可成功提交表单。因此,我需要在控制器中修改此语句以反映该情况。 :

elsif @video.last_step?
   @video.save if @video.all_valid? && @video.save_with_payment(@total) 

@total是向用户收取的金额,“ save_with_payment”表示Stripe收费。 这样做的最佳方法是什么? 我可以以某种方式在此语句中添加另一个“如果”吗?

编辑:抱歉,我打错了字。

您需要在付款前检查总费用是否大于0,或者如果总费用为0,则允许保存视频。

@video.save if @video.all_valid? && ((@total > 0 && @video.save_with_payment(@total)) || @total == 0)

另外,在jQuery代码中,您正在将整数与字符串进行比较。 您可能要:

$(document).ready(function() {
  var xyz = parseFloat($("span#total").text());

  if (xyz === 0.0){
    $("div#stripefields").hide();
  }
});

只是为了避免潜在的不一致。 ==进行比较将尝试强制类型,因此您可能会得到一些奇怪的结果。 因此,通过使用parseFloat将总价格(整数或浮点数)转换为浮点值并将其与浮点数(0.0)进行比较,我们可以使结果非常清楚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM