12

我有一个名为contact.html.twig 的视图。它有一个带有一些文本字段的表单。我想使用 javascript 来验证所有字段都不是空的,以及其他一些规则。但我不知道将 .js 与定义放在哪里。我也不知道如何使用 Twig 表示法调用 .js 脚本。

4

2 回答 2

24

这是关于如何处理 javascript 的通用答案......不是特别是验证部分。我使用的方法是将单独的功能存储在单独的 JS 文件中作为 bundlesResources/public/js目录中的插件,如下所示:

(function ($) {

    $.fn.userAdmin = function (options) {
        var $this = $(this);

        $this.on('click', '.delete-item', function (event) {
            event.preventDefault();
            event.stopPropagation();

            // handle deleting an item...
        });
    }
});

然后,我使用资产将这些文件包含在我的基本模板中:

{% javascripts
    '@SOTBCoreBundle/Resources/public/js/user.js'
%}
    <script src="{{ asset_url }}"></script>
{% endjavascripts %}

在我的基本模板中,我在末尾有一个<body>$(document).ready();

<script>
    $(document).ready(function () {
        {% block documentReady %}{% endblock documentReady %}
    });
</script>
</body>

然后在具有“用户管理员”功能的页面中,我可以像这样调用 userAdmin 函数:

{% block documentReady %}
    {{ parent() }}
    $('#user-form').userAdmin();
{% endblock documentReady %}
于 2012-07-02T17:05:33.003 回答
1

对于客户端验证来说,基本的 HTML5 功能还不够吗?它由 Form 组件提供。您还可以检查:

于 2012-07-02T16:39:33.360 回答