我使用attr
选项为我的删除表单按钮设置自定义ID:
{{ form_widget(form.delete, { 'label': 'myCustomLabel', 'attr': {'id': 'myCustomId'} }) }}
但除了' id' 属性外,它适用于任何内容(例如' class' )。该ID仍然是' form_delete' ,即使使用表单构建器我也无法更改它:
$this->createFormBuilder(null, ['csrf_protection' => false])
->setAction($this->generateUrl('task_delete', array(
'prefix' => self::getTaskMapper()::getPrefix($task),
'id' => $task->getId()
)))->add('delete', SubmitType::class, [
'label' => 'delete',
'attr' => ['id' => 'MyCustomId']
])
->setMethod('DELETE')
->getForm();
为什么会这样?我该如何覆盖它?
表单ID覆盖效果很好。
答案 0 :(得分:2)
因为您不应该使用attr
。只需在主form_widget
选项上设置ID:
form_widget(form.delete, { 'label': 'myCustomLabel','id': 'myCustomId' }) }}