我想在Symfony2表单中添加HTML5颜色输入类型(目前仅受Chrome支持)。我创建了一个新的颜色类型,它继承了文本类型:
<?php
namespace Marquis\WebsiteBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
class ColorType extends AbstractType
{
public function getParent()
{
return 'text';
}
public function getName()
{
return 'color';
}
}
?>
并创建了一个新服务来使用它:
marquis_website.form.type.color:
class: Marquis\WebsiteBundle\Form\Type\ColorType
tags:
- { name: form.type, alias: color }
但是,显示表单时,输入标签如下所示:
<input type="text" id="entity_hex" name="entity[hex]" value="#4D89BF">
因此,它不是使用新的HTML5颜色输入,而是使用文本输入。
有没有一种方法可以覆盖类型,使其显示type =“ color”?
我还检查了fields.html.twig,这行应该可以正常工作:
{% set type = type|default('text') %}
如果我将default('text')更改为default('color'),则所有输入type =“ text”均更改为type =“ color”。
感谢您的帮助,
您还必须为您的字段定义新的主题块
{% form_theme form _self %}
{% block color_widget %}
{% spaceless %}
{% set type = 'color' %}
{{ block('form_widget_simple') }}
{% endspaceless %}
{% endblock %}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句