2011-01-19 69 views
1

我试图完成下面的标记为我所有的表单元素定制验证标记(3)

<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容器有警报上课的时候在我的形式的字段是invali d?

回答

0

我想做同样的事情,但不幸的是还没有想出一个干净的方式来处理它。

您可以重写ActionView :: Base.field_error_proc,但这对封闭元素没有帮助。

可以通过检查每个字段的错误('post.errors ['body']。nil?')手动完成并有条件地输出您的警报类。

下一步可能是将逻辑提取到视图帮助器中,并且可能在此之后进一步抽象。

但以更自动化的Rails-y方式完成此操作仍然很不错。

0

这可能是最好请使用formtasticsimple_form宝石其开箱即用支持的彰显个人无效的字段。

我几乎可以肯定,他们通过更改字段或其容器上的CSS类来完成此操作,您也可以在样式表中挂接该类。

+0

他们风格的容器,或只有输入?因为这是关键问题。我快速浏览了每个项目,因为我对这个答案很感兴趣,但不知道(不是我想为我的项目添加另一个gem;)。 – 2011-01-19 13:59:11