2012-07-02 90 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