Symfony2 - 在引导工具提示中显示表单错误

时间:2017-03-15 12:03:38

标签: forms symfony tooltip

我想在bootstrap工具提示中显示表单错误消息。

<div class="btn-upload" data-toggle="tooltip" data-html="true" data-title="{% if document.documentFile.vars.errors|length > 0 %}<span class='text-danger'>{{ form_errors(document.documentFile) }}</span>{% endif %}">

它应该在图标上的工具提示中显示表单错误。

但是消息显示如下:

enter image description here

现在,如果我将{{ form_errors(document.documentFile) }}更改为“TEST MESSAGE”:

enter image description here

所以问题是工具提示中的表单错误呈现。任何想法如何解决它?

3 个答案:

答案 0 :(得分:0)

默认情况下,错误会在无序列表中呈现:

<ul>
    <li>The file is to large bla bla bla</li>
</ul>

要覆盖为所有字段呈现错误的方式,只需复制,粘贴和自定义form_errors片段。

    <div class="btn-upload" data-toggle="tooltip" data-html="true" data-title="{% if document.documentFile.vars.errors|length > 0 %}<span class='text-danger'>
        {% block form_errors %}
            {% spaceless %}
                {% if errors|length > 0 %}
                    {% for error in document.documentFile %}
                    {{ error.message }}
                    {% endfor %}
                {% endif %}
            {% endspaceless %}
        {% endblock form_errors %}
     </span>{% endif %}">
</div>

答案 1 :(得分:0)

{{ form_errors(document.documentFile) }}使用"呈现破坏div的HTML。

考虑这样做:

<div class="btn-upload" data-toggle="tooltip" data-html="true" id="error-tooltip">
    <script type="text/html" id="form-error">
    {% if document.documentFile.vars.errors|length > 0 %}
        <span class='text-danger'>{{ form_errors(document.documentFile) }}</span>
    {% endif %}
    </script>
    <!-- ... -->
</div>

而且,在你的JS中:

$('#error-tooltip').data('tooltip', $('#form-error').html());

答案 2 :(得分:0)

我终于想出了一种简单的方法来实现它,因为它可以预测document.documentFile.vars.errors的错误。与Favian的答案有点类似,但没有重写一个块。

<div class="btn-upload" data-toggle="tooltip" 
{% if document.documentFile.vars.errors|length > 0 %}
    data-html="true" 
    data-title="<span class='text-danger'>
        {% for error in document.documentFile.vars.errors %}
            {{ error.message }}
        {% endfor %}
    </span>"
{% endif %}
>

工作得很好!