2016-08-11 77 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