开发者

How to make errored inputs prepopulate with previously inputted data

I'm making a custom AJAX form.

If a user fills out half of the form, it will fail wanting the other half fulfilled.

For some odd reason, the form is not pre-populating with at least what they had already inputted.

Because it's not doing this, how can I manually tell it to do so? When the form returns, the Object it verified is still accessible, so I can withdraw information from it.

a sample of the form

- form_for CardSignup.new do |f|
  - unless @card_signup.nil?
    -  if !@card_signup.errors.empty?
      .prefix_1.grid_4
        - @card_signup.errors.full_messages.each do |error|
          .warning
            = error
          %br/
  .grid_2.prefix_1{:style => "width: 166px;"}
    = f.text_field :first_name, :style => "width: 166px;", :value => "first name", :rel => "first name"
    %div{:class => 'error_message'}

my Create method

def create
  if params[:user] && current_user.admin
    @card_signup = User.find(params[:user]).build_card_signup(params[:card_signup])
  else
    @card_signup = current_user.build_card_signup(params[:card_signup])
  end
  if @card_signup.valid?
    respond_to do |wants|
      #wants.html { redirect_to disclaimer_card_signup_path, :locals => { :card_signup => @card_signup } }
      wants.json { ren开发者_StackOverflowder :json => { :html => (render_to_string :partial => 'disclaimer') } } 
    end
  else
    respond_to do |wants|
      #wants.html { redirect_to new_card_signup_path }
      wants.json { render :json => {:errors => @card_signup.errors, :html => (render_to_string :partial => '/card_signups/new_form') } }
    end
  end
end


You're doing this:

form_for CardSignup.new

which will instantiate a new CardSignup object every time you render the form. Move this into the new action and in the create action do this:

@card_signup = CardSignup.new(params[:card_signup])

This will pass the half-filled object back to the form and you'll get the already populated fields.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜