1

検証がうまく機能している 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="#">&times;</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()
4

0 に答える 0