【发布时间】:2013-10-21 13:29:23
【问题描述】:
我有一个 Rails 注册表单,我正在使用jQuery validator 进行验证。它在 localhost 上运行良好,但在 Heroku 上运行时,它似乎运行验证但也立即提交表单,导致页面重新加载和 Rails 模型错误显示。我通过没有在字段中输入任何信息、点击提交和 jQuery 错误来确认这一点 - 但页面立即开始重新加载(提交)。
将 debug: true 添加到 validate() 调用中,这应该可以阻止表单提交并简单地显示错误(同样,在 localhost 上工作)仍然会导致表单在 Heroku 上提交。
我花了几个小时控制台日志,一点一点地评论,但没有结果。任何帮助或想法表示赞赏!
编辑:感谢@Sparky 指出必要性,添加更多特定于代码的代码:
我正在使用jQuery validate gem 和jQuery payment gem。我在 app/assets/javascripts 中有一个 JS 文件,我正在使用此页面特定的要求:
//= 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 验证但它仍然提交表单。
【问题讨论】:
-
在浏览器中看一下控制台,控制台有没有错误?
-
不,控制台没有任何错误。
-
你什么都没给我们看...没有代码,没有标记,甚至没有错误消息。
-
@Sparky 没有错误消息。代码无关紧要——这发生在基本的 Rails 表单上,执行最少的操作以使 jQuery 验证工作:
$('.form').validate();。考虑到它在本地设置上完美运行,我发现它可能与 Heroku 或它如何通过资产管道或其他东西进行部署有关。重申 jQuery validate does 完成了它的工作,但是由于某种原因,表单也会立即提交,导致 AR 验证。 -
你所描述的是不可能的......这就是我要求查看代码的原因。如果它是“通过资产管道部署或其他东西”,则显示浏览器看到的相关代码。此外,没有代码,this is off-topic as per #2:“有关您编写的代码问题的问题必须描述具体问题 - 并在问题本身中包含有效的代码来重现它。见@ 987654325@ 寻求指导。”
标签: jquery ruby-on-rails-3 heroku jquery-validate