2011-01-19 109 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