Rails中的Client_Side_Validation gem

时间:2012-03-01 14:36:16

标签: ruby-on-rails ruby-on-rails-3 forms client-side-validation

我在多模型表单中使用client_side_validation gem。它工作正常,但我有一个问题。表单有一个保存按钮,应该允许用户保存表单以供日后使用。单击此按钮时,没有任何反应,我保持在同一页面。我知道我有验证消息,但用户应该可以在以后完成它们。

在进行客户端验证时,如何使表格按钮正常工作(调用所需的操作)。

谢谢。

这是我的表格,如果有帮助..

<%= form_for @applicant, :validate => true do |f| %>
  <div class="field">
    <%= f.label :first_name, {:class => 'label'}%> 
    <%= f.text_field :first_name ,{:class => 'span3'}%>  
  </div>
  <div class="field">
    <%= f.label :middle_name, {:class => 'label'}%> 
    <%= f.text_field :middle_name,{:class => 'span3'}%>
  </div>
  <div class="actions" style="padding-left: 350px;">
    <%= f.submit "Save", :name => "save", :class => 'btn'%> 
    <%= f.submit "Submit", :name => "submit", :class => 'btn' %>
  </div>

所以当我点击保存按钮时,我想转到创建操作,即使我有验证错误..

感谢。

1 个答案:

答案 0 :(得分:1)

在client_side_validations 4.0发布之前,我认为没有一种直接的方法可以做到这一点。请参阅Github上的this discussion

目前,我通常使用CSV callbacks解决此问题,特别是clientSideValidations.callbacks.form.before(form, eventData)。这是在提交表单之前调用的,如果您禁用或删除任何需要验证的输入,您应该能够毫无问题地提交表单。

这是一个不太理想的解决方案,一旦我们可以使用client_side_validations 4.0在表单级别切换验证,它会更好。