2012-02-16 173 views
2

我正在嘗試使用client_side_validations gem與Devise來驗證設計註冊表單。設計客戶端驗證

驗證與其他一切正常工作,而不是設計生成的窗體。

我添加了相關的:validate => true,但驗證只適用於當我點擊提交而不是像其他表格一樣提交時。

<h2>Sign up</h2> 
<hr /> 

<%= form_for(resource, :validate => true, :as => resource_name, :url => registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 

    <div><%= f.label :username %> 
    <%= f.text_field :username %></div> 

    <div><%= f.label :email %> 
    <%= f.email_field :email %></div> 

    <div><%= f.label :password %> 
    <%= f.password_field :password %></div> 

    <div><%= f.label :password_confirmation %> 
    <%= f.password_field :password_confirmation %></div> 

    <br /> 

    <div><%= f.submit "Sign up", :class => "btn btn-primary btn-large" %></div> 
<% end %> 

<%= render "links" %> 

回答

4

的argc,argv的!我使用Rails 3.2.1,最新發布的gem與3.2不兼容,因此是噩夢。使用3.2.0.beta.2修復了這些問題。謝謝!

1

我還沒有廣泛使用client_side_validations gem。但從它的外觀來看,它需要在表單(和表單元素)標籤中包含data-validate =「true」。

你覺得它在輸出HTML表格,如:

<form novalidate="novalidate" method="post" data-validate="true" action="/some_actions" > 

如果你沒有找到它,你可能想要寫你的form_for這樣的:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), {:validate => true}) do |f| %> 

有何幫助?

+0

https://開頭要點.github.com/1844399 data-validate = true設置爲 – 2012-02-16 12:09:53

+0

根據gem的用法,您需要這些js文件<%= javascript_include_tag'jquery','rails''rai ls.validations' - %>他們是否也在html頁面上? – 2012-02-16 12:14:20

+0

是的,很明顯,所有這些都已經到位,這就是爲什麼它正在渲染它。 – 2012-02-16 12:17:15

3

嘗試把:驗證=>真您直接場,像這樣:

<h2>Sign up</h2> 
<hr /> 

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 

    <div> 
    <%= f.label :username %> 
    <%= f.text_field :username, :validate => true %> 
    </div> 

    <div> 
    <%= f.label :email %> 
    <%= f.email_field :email, :validate => true %> 
    </div> 

    <div> 
    <%= f.label :password %> 
    <%= f.password_field :password, :validate => true %> 
    </div> 

    <div> 
    <%= f.label :password_confirmation %> 
    <%= f.password_field :password_confirmation, :validate => true %> 
    </div> 

    <br /> 

    <div> 
    <%= f.submit "Sign up", :class => "btn btn-primary btn-large" %> 
    </div> 
<% end %> 

<%= render "links" %> 
+0

試過了,沒有骰子!我重寫了我的用戶模型中的設計驗證,因此條件篩選器案例不適用。 – 2012-02-16 12:19:39

2

更改的行

​​

<%= form_for(@user, :url => registration_path(resource_name), :validate => true) do |f| %> 
0

要使用一個穩定版本3.0.3的使用,這是最新的穩定版本,支持軌3.2.x中