我有一个 Rails 注册表单,我正在使用jQuery 验证器进行验证。它在 localhost 上运行良好,但在 Heroku 上运行时,它似乎运行验证但也立即提交表单,导致页面重新加载并显示 Rails 模型错误。我通过没有在字段中输入任何信息、点击提交和 jQuery 错误来确认这一点 - 但页面立即开始重新加载(提交)。
添加debug: true
到validate()
应该阻止表单提交并简单地显示错误的调用(同样,在 localhost 上工作)仍然会导致在 Heroku 上提交表单。
我花了几个小时控制台日志,一点一点地评论,没有结果。任何帮助或想法表示赞赏!
编辑:由于@Sparky 指出了必要性,添加了更多特定于代码的代码:
我正在使用jQuery validate gem和jQuery payment gem。我有一个 JS 文件app/assets/javascripts
,我正在使用特定于此页面的要求:
//= require jquery.payment
//= require jquery.validate
//= require jquery.validate.additional-methods
和内容:
$(document).ready(function () {
$('.form-signup').validate();
});
我的 application.js 有:
//= require jquery
//= require jquery_ujs
//= require log
//= require_self
注册页面是一个 HAML 设计表单:
= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => {:class => 'form form-signup control-group' }) do |f|
= f.input :first_name, :autofocus => true, :placeholder => "First name", :label => false
= f.input :last_name, :placeholder => "Last name", :label => false
= f.input :email, :placeholder => "Email", :label => false, :required => true
= f.input :password, :placeholder => "Password", :label => false, :input_html => { minlength: 6 }, :required => true
= f.submit "Sign Up Now", :class => 'btn btn-success', :id => "signup-button"
没有错误记录到控制台。
这在本地工作,但在 Heroku 上,jQuery 验证显示但它仍然提交表单。