SimpleForm + ClientSideValidations + bootstrap – 表单上没有validation – 所有输入都被接受

我在RoR应用程序中使用SimpleForm,ClientSideValidations和ClientSideValidations-SimpleForm gems。 我可以将表单精美地渲染到模态中,但是当输入失去焦点时,不会进行validation并提交表单。 另请注意,我尝试使用此处的修复程序: http : //www.ddarrensmith.com/blog/2012/05/17/ruby-on-rails-client-side-validation-with-validation-helpers-and- Twitter的引导/

包含表单的视图的片段:

 

我的Gemfile

 gem 'rails', '3.2.1' gem 'jquery-rails' gem 'carrierwave' gem 'simple_form' gem 'client_side_validations' gem 'client_side_validations-simple_form' 

模型

 class Discrepancy  true validates :status, :presence => true validates :description, :presence => true validates :system, :presence => true validate :close_date validates_inclusion_of :status, :in => STATUSES, :message => "must be one of: #{STATUSES.join(', ')}" end 

application.js文件

 //= require jquery //= require jquery_ujs //= require rails.validations //= require rails.validations.simple_form //= require_tree . 

我还确认脚本标签是在表格正下方的html中生成的。 谢谢您的帮助!

所有逻辑都应用于具有可见输入的表单。 由于您的输入在页面加载时不可见,因此不会附加任何事件。

以下对我有用:

 $('#myModal').on('shown', function () { $(ClientSideValidations.selectors.forms).validate(); }); 

README实际上详细说明了一个更具体的function:

 $(new_form).enableClientSideValidations(); 

https://github.com/bcardarella/client_side_validations#enabling

在较新的引导版本上:

 $('#myModal').on('shown.bs.modal', function () { $(ClientSideValidations.selectors.forms).validate(); });