Спасибо за ваш ответ, но я уже попробовал это и все еще возникают проблемы. Я пытаюсь добавить пользовательское действие в EasyAdmin, но прежде чем перейти к контроллеру, мне нужно модальное запросить подтверждение. Он идет в модал, но после щелчка ничего не делает. Он работает с "window.confirm", но я не могу воспроизвести это поведение с модальным bootstrap. Вот мой yaml, который устанавливает действие:
- {
name: 'import',
label: 'import',
type: 'route',
css_class: 'btn btn-secondary',
}
Вот код для модального и jquery:
{% extends '@!EasyAdmin/default/list.html.twig' %}
{% block main %}
{{parent()}}
{% block import_action %}
<div id="modal-import" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<h4>{{ 'import_modal.title'|trans(_trans_parameters, 'messages') }}</h4>
<p>{{ 'import_modal.content'|trans(_trans_parameters, 'messages') }}</p>
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn btn-secondary">
<span class="btn-label">{{ 'action.cancel'|trans(_trans_parameters, 'messages') }}</span>
</button>
<button type="button" data-dismiss="modal" id="modal-delete-button" class="btn btn-secondary">
<span class="btn-label">{{ 'action.continue'|trans(_trans_parameters, 'messages') }}</span>
</button>
</div>
</div>
</div>
</div>
{% endblock import_action %}
{% endblock %}
{% block body_javascript %}
{{ parent() }}
<script type="text/javascript">
$('.action-import').on('click', function(e) {
e.preventDefault();
$('#modal-import').modal({ backdrop: true, keyboard: true })
.on('click', '#modal-import-button', function () {
let importForm = $('.action-import');
importForm.attr('action');
$('.action-import').triggerHandler('click');
});
});
</script>
{% endblock body_javascript %}
preventDefault()
останавливает событие, а затем даже если я выполнить принудительное перенаправление на маршрут, он работает, но у запроса нет необходимых параметров.