javascript - JQuery 无法与我的 Rails 3.2 项目一起启动/工作

标签 javascript jquery ruby-on-rails forms coffeescript

如标题所示,我已确保所有需要的 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/

相关文章:

ruby-on-rails - Rails 3 的主要新特性是什么

javascript - 将各种 ID 与循环中的索引进行匹配

javascript - 为什么要把 javascript 放在 asp.net 中?

javascript - 防止使用“无显示”按钮提交 Jquery 表单上的页面加载

javascript - 使用 jQuery 对记录进行分页

ruby-on-rails - 切换 Ruby on Rails 数据库

javascript - 使用 requirejs 设置 headless 单元测试

javascript - 如果解析值不为零,Angular 仅放置 ng-minlength 属性

jQuery 后代选择器选择了祖先之外的元素

ruby-on-rails - Ruby 2.5.1、Ruby Java Bridge (RJB) 和 Ubuntu 18.04 : Getting `Constants DL and Fiddle is not defined.`