fieldWithErrors not wrapping every error field

Posted by Teef L on Stack Overflow See other posts from Stack Overflow or by Teef L
Published on 2010-06-05T03:17:54Z Indexed on 2010/06/05 8:22 UTC
Read the original article Hit count: 167

Filed under:
|
|
|

Notice the following result when I submit blank :title and :description fields

Error div tags only wraps the title text field and not the description text area.

The validations are in the controller:

class Question < ActiveRecord::Base
  validates_presence_of :title
  validates_presence_of :description

And, the form is generated with those names:

-form_for(@question) do |f|
  = f.error_messages
  = f.label :title
  = f.text_field :title, :size => 50, :onchange => remote_function(:url => {:action => :display_tag_suggestions}, :with => 'Form.Element.serialize(this)')
  #suggestions
  = f.label :description
  = f.text_area :description
  ...

But, for some reason, only :title gets wrapped in the error div tags:

<form action="/questions" class="new_question" id="new_question" method="post">
  <div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="6HQaiu1D0gBQcKw2pLeZP6Jvn0FSClPD5Sk9HwegzPg=" /></div>
  <div class="errorExplanation" id="errorExplanation">
    <h2>2 errors prohibited this question from being saved</h2>
    <p>There were problems with the following fields:</p>
    <ul>
      <li>Title can't be blank</li>
      <li>Description can't be blank</li>
    </ul>
  </div>
  <label for="question_title">Title</label>
  <div class="fieldWithErrors"><input id="question_title" name="question[title]" onchange="new Ajax.Request('/questions/display_tag_suggestions', {asynchronous:true, evalScripts:true, parameters:Form.Element.serialize(this) + '&amp;authenticity_token=' + encodeURIComponent('6HQaiu1D0gBQcKw2pLeZP6Jvn0FSClPD5Sk9HwegzPg=')})" size="50" type="text" value="" /></div>
  <label for="question_description">Description</label>
  <textarea cols="40" id="question_description" name="question[description]" rows="20"></textarea>
  ...

I don't think that behavior is expected. The problem most people have is that it's wrapping things with divs, which won't display properly. My problem is that fields aren't being wrapped with divs to begin with!

I haven't made any (conscious) changes to how errors are handled, so I'm not sure why it's not working properly.

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about css