Использование javascript в Symfony2/Twig

У меня есть вид, называемый contact.html.twig. Он имеет форму с некоторыми текстовыми полями. Я хочу использовать javascript для проверки того, что ни одно из полей не является пустым, а также некоторые другие правила. Но я не знаю, где поставить .js с определениями. Я не знаю, как вызвать .js script, используя нотацию Twig.

Ответ 1

Это общий ответ за то, как обращаться с javascript... не в частности с частью проверки. Подход, который я использую, заключается в том, чтобы хранить отдельные функции в отдельных файлах JS в виде плагинов в каталоге пакетов Resources/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...
        });
    }
});

Затем я включаю эти файлы в базовый шаблон, используя assetic:

{% 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 %}

Ответ 2

Является ли базовая функциональность HTML5 достаточной для проверки на стороне клиента? Он предоставляется компонентом Form. Вы также можете проверить: