2012-07-02 125 views
11

我有一个名为contact.html.twig的视图。它有一些带有文本框的表单。我想使用JavaScript来验证没有任何字段是空的,以及一些其他规则。但是我不知道把.js放在哪里。我不知道如何使用Twig表示法调用.js脚本。在Symfony2/Twig中使用javascript

回答

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