検証がうまく機能している SimpleForm セットアップがあります。ページのリロードを実行する必要がないように、AJAX を実装したいと考えています。コードに追加:remote => true
すると、検証が機能しなくなります。これは予想される動作ですか?remote が true に設定されている場合、SimpleForm 検証は機能しなくなりますか?
これが私のコードのサンプルです:
<%= simple_form_for @business, :url => {:action => "create", :id => "submit_subscription_signup_form"}, :html => {:class => "form-horizontal"}, :remote => true do |f| %>
<% if notification = f.error_notification %>
<div class="alert alert-error fade in">
<a class="close" data-dismiss="alert" href="#">×</a>
<%= notification %>
</div>
<% end %>
<%= f.input :business_name, :input_html => { :class => "span6" } %>
<%= f.input :address1, :input_html => { :class => "span6" } %>
<%= f.input :city, :input_html => { :class => "span6" } %>
<div class="actions" style="text-align: right;"><%= f.submit "Sign Up", :class => 'btn btn-success', :id => "signup_form_submit_button" %></div>
<% end %>
そして、コントローラーでの私の作成アクション:
def create
@business = Business.new(params[:business])
if @business.save
#removed logic for simplicity
respond_to do |format|
format.html
format.js { render 'subscriptions/_logged_in' }
end
else
respond_to do |format|
format.html { render 'index' }
format.js { render 'subscriptions/_signup' }
end
end
end
そして、送信を失敗させて検証を表示したいので、_signup.js.erb パーシャルが呼び出されます。メイン ビューには、jQuery を使用して表示または非表示にする多数のフォームが含まれています。したがって、_signup.js.erb には以下が含まれます。
$('#login_form').hide()
$('#logged_in_form').hide()
$('#signup_form').show()