开发者

fieldWithErrors not wrapping every error field

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. http://www.freeimagehosting.net/uploads/c14b4a2d74.png

The validations are in the controller:

class Question < Ac开发者_如何学GotiveRecord::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.


What version of Haml are you using? Some older versions had compatibility trouble with error wrapping.

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜