我正在尝试为所有表单元素完成以下标记
<div class="input-container">
<label>Topic Title</label>
<div class="input-holder">
<input type="text" />
</div>
</div>
<div class="textarea-container">
<label>Post</label>
<div class="textarea-holder">
<textarea></textarea>
</div>
</div>
无效字段标记:
<div class="input-container alert">
<label>Topic Title</label>
<div class="input-holder">
<input type="text" />
</div>
</div>
<div class="textarea-container alert">
<label>Post</label>
<div class="textarea-holder">
<textarea></textarea>
</div>
</div>
这是我目前的haml标记:
.input-container
= f.label :title, 'Topic Title'
.input-holder
= f.text_field :title
.textarea-container
= f.label :body, 'Post'
.textarea-holder
= f.text_area(:body, :size => "60x10")
现在,如果我希望容器div在表单中的字段无效时具有警报类,我需要做什么?
答案 0 :(得分:0)
我想做同样的事情,但遗憾的是还没有想出一个干净的方法来处理它。
您可以覆盖ActionView :: Base.field_error_proc,但这对封闭元素没有帮助。
可以通过检查每个字段的错误('post.errors ['body'] .nil?')并有条件地输出警报类来手动完成。
下一步可能是将逻辑提取到视图助手中,之后可能会进一步抽象。
但是以更自动化的Rails-y方式做这件事仍然会很好。
答案 1 :(得分:0)
最好使用 formtastic 或 simple_form 宝石,这些宝石开箱即用,支持突出显示单个无效字段。< / p>
我几乎可以肯定他们通过更改字段或容器上的CSS类来实现这一点,您也可以在样式表中使用它。