2012-07-02 26 views
11

Tôi có chế độ xem được gọi là contact.html.twig. Nó có một biểu mẫu với một số trường văn bản. Tôi muốn sử dụng javascript để xác nhận rằng không có trường nào trống, cũng như một số quy tắc khác. Nhưng tôi không biết nơi để đặt .js với các định nghĩa. Tôi không biết cách gọi script .js bằng ký hiệu Twig.Sử dụng javascript trong Symfony2/Twig

Trả lời

24

Đây là một câu trả lời chung cho cách xử lý javascript ... không đặc biệt là phần xác nhận. Phương pháp tôi sử dụng là để lưu trữ chức năng cá nhân trong các tập tin JS riêng biệt như plugins trong các bó Resources/public/js thư mục như sau:

(function ($) { 

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

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

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

sau đó tôi bao gồm các tập tin trong mẫu cơ sở của tôi sử dụng assetic:

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

Trong mẫu cơ sở của tôi tôi có một khối ở phần cuối của <body> cho một $(document).ready();

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

Sau đó, trong trang của tôi mà có "chức năng quản trị người dùng" Tôi có thể gọi hàm userAdmin như sau:

{% block documentReady %} 
    {{ parent() }} 
    $('#user-form').userAdmin(); 
{% endblock documentReady %} 
+0

Rất tốt - cảm ơn bạn – someuser

1

Chức năng HTML5 cơ bản không đủ để xác thực phía khách hàng của bạn chưa? Nó được cung cấp bởi thành phần Form. Bạn cũng có thể kiểm tra:

+2

xác thực html5 sẽ không hoạt động cho tất cả các trình duyệt – Aris

Các vấn đề liên quan