2012-11-25 21 views
0

我有模態窗口,通過ajax彈出(我的數據和窗體正在加載模態窗口中)。如何組織在客戶端驗證表單?

我的模式和形式

<div id="name_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"></div> 

部分與模體

<div class="modal-body"> 
<%= form_for(@user, :url => update_name_user_registration_path, 
    :html => { :id => "form_name_phone", :method => :put }, :remote => true) do |f| %> 

     <div><%= f.label :name, t('form.name') %><br /> 
     <%= f.text_field :name %></div> 
     <div><%= f.label :phone_number %><br /> 
     <%= t('form.phone_notice')%><br /> 
     <%= f.text_field :phone_number, :maxlength => 10 %></div> 

    <div><%= f.submit t('users.update') %></div> 
<% end %> 
</div> 

然後我也通過AJAX發送數據。

如何組織在客戶端驗證此表單?

回答

1

查看此欄杆鑄client side validation。這個寶石將幫助您驗證表單上的所有元素或每個元素。它使用您在模型中定義的驗證。

如果您的示例用戶模型有這個驗證:

validates :name, presence: true 

然後在你的窗體中添加validate: true

<%= form_for(@user, validate: true, :url => update_name_user_registration_path, 
    :html => { :id => "form_name_phone", :method => :put }, :remote => true) do |f| %> 

這將檢查name的形式必須是存在的。如果您已驗證模型中的其他屬性,它們也將進行驗證。

+0

我試過這個,但它在我的應用程序中並不適用於ajax。或者我做錯了。也許你有一個完整的例子?我看到http://railscasts.com/episodes/263-client-side-validations,但沒有發生任何事情。 – user1466717

+0

這是驗證窗體上的時間點擊它,並移動到其他領域。如果你想發送數據使用Ajax,那麼你應該寫更多的代碼來做到這一點。這[教程](http://ruby.railstutorial.org/chapters/following-users#sec-a_working_follow_button_with_ajax)有一個使用Ajax的指南,請檢查它以瞭解如何使Ajax工作。 – Thanh