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链接的引用。
- 如何在Rails中使用Ajax和Jquery将图像上传到Amazon AWS(S3)?
- 使用Ajax请求的奇怪行为
- jQuery“对象函数(e,t){return new v.fn.init(e,t,n)}没有方法’on’”
- bootstrap popover preventDefault for click在Rails 3.2应用程序中不起作用
- coffeescript总是返回响应对象
- 使用鼠标光标位置作为CoffeeScript / JavaScript中的范围起点
- 在coffeescript中停止setInterval
- 更新arrays时模型的更改事件不会触发?
- 为什么javascript“this”不适用于“each”?