2012-07-02 17 views
11

Mam widok o nazwie contact.html.twig. Ma formę z pewnymi polami tekstowymi. Chcę użyć javascript do sprawdzenia, czy żadne z pól nie są puste, a także niektóre inne reguły. Ale nie wiem, gdzie umieścić .js z definicjami. Nie wiem, jak wywołać skrypt .js przy użyciu notacji Twig.Używanie javascript w Symfony2/Twig

Odpowiedz

24

Jest to odpowiedź na rodzajowy jak obsługiwać JavaScript ... nie specjalnie część walidacji. Podejście używam jest przechowywanie poszczególnych funkcjonalności w oddzielnych plikach JS jako wtyczki w wiązkach Resources/public/js katalog tak:

(function ($) { 

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

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

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

I wtedy to te pliki w moim szablonu bazowego za pomocą assetic:

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

W mój szablon bazowy mam blok na końcu <body> dla $(document).ready();

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

potem w moją stronę, która ma „Admin user” funkcjonalność mogę wywołać funkcję userAdmin tak:

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

Bardzo ładne - dziękuję – someuser

1

Czy podstawowa funkcjonalność HTML5 nie wystarcza do sprawdzenia poprawności strony klienta? Jest dostarczany przez komponent Form. Można również sprawdzić:

+2

walidacja HTML5 nie będzie działać na wszystkich przeglądarkach – Aris

Powiązane problemy