客户端验证gem,简单形式不起作用

时间:2014-12-17 11:34:28

标签: ruby-on-rails ruby simple-form client-side-validation

<%= simple_form_for (@category), :validate => true do |f| %>
  <%= f.error_messages %>

  <ol class="formList">
        <%= f.hidden_field :user_id, :value => current_user.id %>

      <%= f.input :category, :size =>20, :title => "Enter Category Name"  %>
    <%= f.submit %><div class="load_preview_customer"><%= f.submit "preview", :style => 'width:100px;', data: {:disable_with=>"loading preview..."} %></div>
  </ol>
<% end %>

验证工作只有当我点击提交按钮而不是当字段超出字段时,我还在初始化程序目录下生成了rails.validation文件,并在application.js中添加了简单表单的资源

3 个答案:

答案 0 :(得分:1)

您必须在rails.validations之后添加rails.validations.simple_form。您也可以添加如下:

(<%= javascript_include_tag "application", "rails.validations", "rails.validations.simple_form" %>)

或者,

在app / assets / javascripts / application.js中:

//= require rails.validations
//= require rails.validations.simple_form 

然后在app / views / layouts / application.html.erb中将javascript_include_tag更改为以下内容:

<%= javascript_include_tag "application" %>

答案 1 :(得分:0)

在您描述的过程中有很多工作,因此添加更多细节会很好。例如:澄清发生的事情与您期望在此发生的事情之间的区别。了解这个宝石的功能也很重要 - 也许它正在按预期工作。此类操作基于浏览器生成的事件,例如,单击按钮与模糊事件完全不同。换句话说,宝石可能只对某些事件起作用。扩大情况!

答案 2 :(得分:0)

我认为simple_form的错误消息只是传递Rails验证错误。听起来你想要一些客户端验证。也许您希望使用一些前端j来匹配您的rails验证要求。

编辑: 我在评论中注意到你提到了你跟随的railscast剧集注意!这是一个三岁的插曲。我在railscast的评论中看到有人推荐这个gem作为当前的选择: https://github.com/kalkov/rails4_client_side_validations

它也没有得到很好的支持,但是如果你使用的是rails 4,你可能会有更好的运气。