Тип коллекции symfony добавить функции javascript в поля коллекции

Я добавил javascript в поля моей коллекции. Однако я не знаю, как правильно написать javascript, не будучи двойным, поэтому каждое новое или выходящее поле включает этот javascript.

Заранее спасибо :)

Я сейчас использую это:

$('a').on('click', function() {
        setTimeout( function () {
        $('#property_propertydistances_0_icon').fontIconPicker({
            source:    ['icon-heart', 'icon-search', 'icon-user', 'icon-tag', 'icomoon-home2'],
            emptyIcon: false,
            hasSearch: false
        });
            } , 300 );
});

    jQuery(document).ready(function($) {
        $('#property_propertydistances_0_icon').fontIconPicker({
            source:    ['icon-heart', 'icon-search', 'icon-user', 'icon-tag', 'icon-help'],
            emptyIcon: false,
            hasSearch: false
        });
    });

$('a').on('click', function() {
        setTimeout( function () {
        $('#property_propertydistances_1_icon').fontIconPicker({
            source:    ['icon-heart', 'icon-search', 'icon-user', 'icon-tag', 'icomoon-home2'],
            emptyIcon: false,
            hasSearch: false
        });
            } , 300 );
});

    jQuery(document).ready(function($) {
        $('#property_propertydistances_1_icon').fontIconPicker({
            source: fnt_icons_2,
            theme: 'fip-darkgrey'
        });
    });

Я использую easyadmin с этой настройкой полей, это можно сделать только с помощью конструктора форм и кода js.

общедоступная функция buildForm (FormBuilderInterface $ builder, массив $ options)

{

$builder

    ->add('icon', TextType::class, array('label' => 'Icon', 'empty_data' => 'icon','label_attr' => array('style'=> '') ))

    ->add('title', TextType::class, array('label' => 'Title (English)', 'empty_data' => 'name','label_attr' => array('style'=> '') ))

    ->add('title_th', TextType::class, array('label' => 'Title (Thai)', 'empty_data' => 'object','label_attr' => array('style'=> '') ))

    ->add('distance', NumberType::class, array('label' => 'Distance (km)', 'empty_data' => '4','label_attr' => array('class'=> 'col-4') ))


;

}

а затем я просто загружаю также файлы js en css, и текстовый файл переопределяется этой функцией jquery. я использую https://fonticonpicker.github.io/

и это моя часть кода easyadminyaml

                - { property: 'propertydistances', css_class: 'propertydistancejava distance-collectionstyling',  id: 'testid1', type: 'collection', type_options: { entry_type: 'App\Form\DistanceType', by_reference: false,  attr: { name: 'testname2', id: 'testid2'} }}      

Не использовать идентификатор ('#property_propertydistances_1_icon') и использовать класс?

Fabian Schmick 09.04.2019 15:45

Или используйте все идентификаторы, начинающиеся с $('[id^ = "property_propertydistancest_"]')

Fabian Schmick 09.04.2019 15:47

Спасибо за ответ. можно немного конкретнее? я плохо разбираюсь в функциях javascript, циклах и т. д.

Missblues 09.04.2019 15:49

Не могли бы вы показать нам ответственную часть в twig и сгенерированный html-код?

Fabian Schmick 09.04.2019 15:56

я обновил свой пост. я использую плагин jquery, который переопределяет текстовое поле ввода

Missblues 09.04.2019 16:07
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
5
353
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В своем $builder добавьте классы к своим полям. Затем в вашем javascript повторите свои классы, чтобы добавить код JavaScript. Например :

    $builder
        ->add('distance', TextType::class, [
            'attr' => ['class' => 'property-js'],
        ])
        ->add('image', TextType::class, [
            'attr' => ['class' => 'property-js'],
        ])

    jQuery(document).ready(function($) {
        $('.property-js').each(function(elem) {
            elem.fontIconPicker({
               source:    ['icon-heart', 'icon-search', 'icon-user', 'icon-tag', 'icon-help'],
               emptyIcon: false,
               hasSearch: false
            });
        });
    });

Спасибо за ответ. я пытаюсь реализовать elem. поставил, я получил ошибку, я немного изменил ваш код, и теперь у меня есть $this, и это работает finr codejQuery(document).ready(function($) { $('.property-js').each(function($this ) { $(this).fontIconPicker({ source: pack1, emptyIcon: false, hasSearch: false }); }); });code

Missblues 14.04.2019 15:26

Другие вопросы по теме