2016-08-11 63 views
0

我在我的django項目中有一個表單,並且我想在用戶單擊提交時顯示錶單錯誤(如果有)。這是我的領域之一(在得到一個合適的工作之前,我移動到其他)Bootstrap可忽略警報

<div class="form-group"> 
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="title">Title 
    </label> 

    <div class="col-md-6 col-sm-6 col-xs-12"> 
     {{ form.title }} 
    </div> 
    <div class="col-md-3 .col-md-offset-3"> 
{#          <p class="text-danger">{% for error in form.title.errors %}{{ error }}{% endfor %}</p>#} 
     <div class="alert alert-warning alert-dismissible" role="alert"> 
      <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
      <p>{% for error in form.title.errros %} {{ error }} {% endfor %}</p> 
     </div> 
</div> 

不過我有2個問題:

  1. 警報顯示了形式負載時,沒有錯誤消息:

alert on form load

  • 當我駁回形式造型得到弄糟警報:
  • styling messed up

    我似乎無法理解的問題是什麼。

    我能夠在沒有使用此代碼的引導警報的情況下獲得錯誤消息。但是這將是巨大的,讓校正作出後用戶關閉快訊:

    <div class="form-group"> 
        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="title">Title 
        </label> 
    
        <div class="col-md-6 col-sm-6 col-xs-12"> 
        {{ form.title }} 
        </div> 
        <span class="help-block"> 
         <p class="text-danger">{% for error in form.title.errors %}{{ error }}{% endfor %}</p> 
        </span> 
    </div> 
    
    +0

    也許,你會發現http://django-crispy-forms.readthedocs.io/en/latest幫助的,因爲它需要照顧所有的HTML/CSS爲你工作。 – user4426017

    回答

    1

    <div>包含警報沒有結束</div>標籤,即弄亂了,當你解除警報的形式。至於表單加載時顯示的警報 - 警告div中已經有一些內容(「關閉」按鈕),以便顯示它。你必須有條件地(僅當有相應的錯誤顯示),使其:

    <div class="col-md-3 .col-md-offset-3"> 
         {% if form.title.errors %} 
          <div class="alert alert-warning alert-dismissible" role="alert"> 
           <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
           <p>{% for error in form.title.errors %} {{ error }} {% endfor %}</p> 
          </div> 
         {% endif %} 
        </div> 
    
    +0

    我確實嘗試過。但是,錯誤文本不顯示。它只顯示,當我這樣做,我已經在我的帖子 – newkid101

    +0

    最後的代碼片段中顯示它的方式這可能是一個造型問題 - 錯誤呈現爲無序列表,所以我認爲他們出現在底部邊緣下方的隱藏區域警報(在截圖中註明「關閉」按鈕是如何剪切的,消息更低)。您可以在瀏覽器中使用調試工具(Shift + Ctrl + C用於Windows/Linux上的Chrome/Firefox,不記得其他瀏覽器或Mac快捷方式)以確認它在那裏,並使用CSS進行播放以顯示它。 – rafalmp

    +0

    我確實在div上使用了開發人員工具和「檢查元素」。它只顯示生成的'alert div'和'x'按鈕,但沒有文本。 – newkid101