Zend Framework 2 добавить кнопку удаления рядом с полем формы

У меня есть это на данный момент:
поле формы

Он генерируется с помощью этого кода:

$this->add(array(
'type' => 'Zend\Form\Element\Collection',
'name' => 'attachments',
'options' => array(
'count' => 1,
'should_create_template' => true,
'allow_add' => true,
'allow_remove' => true,
'target_element' => new AttachmentFieldset($this->entityManager)
)
));

Я хочу добавить кнопку удаления рядом с каждым полем формы, чтобы я также мог удалять вложения. Как я могу это сделать?

1

Решение

При использовании коллекции, указав allow_add или же allow_remove не говорит ZF создать соответствующие кнопки, только то, что коллекция может содержать любое количество элементов (минимум, указанный в count).

После добавления коллекции в форму вам также необходимо добавить кнопку, которая при нажатии вызывает функцию для добавления другого элемента на основе шаблона.

Из руководства:

<button onclick="return add_category()">Add a new category</button>

а также

<script>
function add_category() {
var currentCount = $('form > fieldset > fieldset').length;
var template = $('form > fieldset > span').data('template');
template = template.replace(/__index__/g, currentCount);

$('form > fieldset').append(template);

return false;
}
</script>

Чтобы добавить кнопку удаления, измените вышеуказанную функцию, добавив кнопку в шаблон, и создайте функцию удаления:

<script>
function add_category() {
var currentCount = $('form > fieldset > fieldset').length;
var template = $('form > fieldset > span').data('template');
template = template.replace(/__index__/g, currentCount)
.replace('</fieldset>', '<button onclick="return remove_category(this)">Remove</button></fieldset>');
$('form > fieldset').append(template);

return false;
}
function remove_category(el) {
$(el).parent().remove();
}
</script>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]