JQuery没有解决我的Rails 3.2项目

在标题中,我确保所有需要的JS文件都包含在元标记中,包括jquery-rails / coffee-rails gem,链接到外部标记以防万一。

这是来自Ryan Bates Stripe教程的修改过的脚本,据我所知它通过检测表单中的提交动作来启动它。

由于我不熟悉JS或CoffeeScript,我无法确定这里的问题是什么。

非常感谢我能得到的任何帮助。

donations.js文件:

jQuery -> Stripe.setPublishableKey($('meta[name="stripe-key"]').attr('content')) donation.setupForm() donation = setupForm: -> $('#new_donation').submit -> $('input[type=submit]').attr('disabled', true) if $('#card_number').length donation.processCard() false else true processCard: -> card = number: $('#card_number').val() cvc: $('#card_code').val() expMonth: $('#card_month').val() expYear: $('#card_year').val() Stripe.createToken(card, donation.handleStripeResponse) handleStripeResponse: (status, response) -> if status == 200 alert(response.id) else alert(response.error.message) 

捐款/ new.html.erb表格

  
nil %>
nil %>
true}, {:name => nil, :id => "card_month"} %> Date.today.year, :end_year => Date.today.year+15}, {:name => nil, :id => "card_year"} %>

Amount: $2.50 "2,5" } %>

'donate-button' %>

你的javascript似乎是,好吧, Coffeescript – 确保它放在它自己的donations.js.coffee文件中,并且当你在它时你包括coffee-rails gem。

标准调试技术在这里很有用 – 尝试在初始jQuery ->行之后添加一个alert("It lives!")或其他内容,以查看是否正在调用document.ready处理程序。

如果没有,请检查以确保首先加载donations.js.coffee文件,如果没有,请确保将其加载到页面的标题中,或者在application.js有类似的内容。 :

 //= require jquery //= require donations 

或者,如果您只想在app/assets/javascripts包含所有内容:

 //= require jquery //= require_tree . 

彼得是对的,你的coffeescript代码应该被正确命名,以便它可以被翻译成JavaScript。

另一个调试策略是查看发送到浏览器的html / js源。 使用view source命令查看html源代码。 然后单击对包含已翻译的donations.js的js链接的引用。