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