如标题所示,我已确保所有需要的 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)
donations/new.html.erb 表单
<%= form_for(@donation) do |f| %>
<div class="field">
<%= f.label :from %>
<%= f.text_field :from %>
</div>
<div class="field">
<%= label_tag :card_number, "Credit Card Number" %>
<%= text_field_tag :card_number, nil, :name => nil %>
</div>
<div class="field">
<%= label_tag :card_code, "Security Code (CVV)" %>
<%= text_field_tag :card_code, nil, :name => nil %>
</div>
<div class="field">
<%= label_tag :card_month, "Card Expiration" %>
<%= select_month nil, {:add_month_numbers => true}, {:name => nil, :id => "card_month"} %>
<%= select_year nil, {:start_year => Date.today.year, :end_year => Date.today.year+15}, {:name => nil, :id => "card_year"} %>
</div>
<div class="field">
<%= f.label :Notes %>
<%= f.text_field :note %>
</div>
<br>
<center>
<span class="BigBold">Amount: $2.50</span>
<%= f.hidden_field :amount, {:value => "2,5" } %><br>
</center>
<br>
<center>
<%= f.submit "Donate Now", :class => 'donate-button' %>
</center>
<% end %>
最佳答案
您的 javascript 似乎是,Coffeescript - 确保将其放入自己的 donations.js.coffee
文件中,并且您包含 coffee-rails
gem ,当你在它。
标准调试技术在这里会很有用 - 尝试在初始 jQuery ->
行之后添加 alert("It live!")
或其他内容来查看文档是否.ready 处理程序一直被调用。
如果没有,请检查以确保首先加载 donations.js.coffee
文件,如果没有,请确保将其加载到页面的 header 中,或者你在 application.js
中有类似的东西:
//= require jquery
//= require donations
或者,如果您只想将所有内容包含在 app/assets/javascripts
中:
//= require jquery
//= require_tree .
关于javascript - JQuery 无法与我的 Rails 3.2 项目一起启动/工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9344569/