【发布时间】:2015-09-23 01:35:34
【问题描述】:
我正在使用一个非常有用的 gem ClientSideValidations,它适用于除条件验证之外的所有内容,其中条件是另一个字段中存在值。
我有一个复选框字段 (:has_dog),如果选中该复选框,则会生成要验证的文本字段 (:dog_name)。现在,这一切都很好,并且符合服务器端验证的预期,但是在执行客户端时它不会验证。
条件验证在客户端为其他字段工作,例如我硬编码为 true 或在服务器端执行其他操作,但如果结果需要来自相同表单的字段,则不是。
类
class PetCare < ActiveRecord::Base
validates :dog_name, presence: true, if: :has_dog?
end
表格
<%= form_for @pet_care, validate: true do |f| %>
<%= f.label :has_dog %>
<%= f.check_box :has_dog %>
<br />
<%= f.label :dog_name %>
<%= f.text_field :dog_name, validate: true %>
<% end %>
因此,即使“has_dog”为真,客户端“dog_name”也不会得到验证。 (尽管它在服务器端工作)。我已经尝试了名称、表单类型等的所有组合。它只是看不到“has_dog”值。我即将为此编写一个自定义验证器,但对于一件非常简单的事情来说,这似乎太过分了。有没有其他人遇到过这种情况,有什么解决办法吗?
【问题讨论】:
标签: javascript ruby-on-rails forms validation client-side-validation