2012-07-02 7 views
11

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

ответ

24

Это общий ответ о том, как обращаться с 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 %} 
+0

Очень приятно - спасибо – someuser

1

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

+2

валидация html5 не будет работать для всех браузеров – Aris

Смежные вопросы