如何在表单输入字段中添加类?

时间:2018-01-01 11:06:57

标签: javascript php symfony1 symfony-forms symfony-1.2

我正在尝试将 jscolor 添加到输入字段,但它不能与我合作!

在配置功能中:

public function configure() {
        unset($this['created_at'],$this['clicks']);
        $this->widgetSchema['background_color']->sfWidgetFormInput('class'=> 'jscolor');
} 

我还尝试在 BaseForm

中添加以下内容
$this->setWidgets(array(
            'id'            => new sfWidgetFormInputHidden(),
            'background_color'  => new sfWidgetFormInput(array('class'=> 'jscolor')),
            'url_link'      => new sfWidgetFormInput(),
            'status'        => new sfWidgetFormInput(),
        ));

错误:sfWidgetFormInput函数中不允许使用Class!

我想添加一个类jscolor!如何通过JavaScript或使用此配置添加它?

2 个答案:

答案 0 :(得分:2)

sfWidgetFormInput(实际上,任何symfony1小部件)都有2个参数 - $options$attributes。您将该类作为选项而不是作为属性传递。在模板中调用render()时添加class属性是一个选项,但我可能会选择(在大多数情况下)在设置表单时执行此操作,在configure方法中

public function configure() {
        unset($this['created_at'], $this['clicks']);

        $this->setWidget('background_color', new sfWidgetFormInput(array(), array('class'=> 'jscolor'));

        // or to be a bit more minimalistic:
        $this->getWidget('background_color')->setAttribute('class','jscolor');
}

baseForm可能是自动生成的,我强烈建议不要修改它。

答案 1 :(得分:1)

在将模板中的表单元素呈现为:

时,需要将类添加到输入中
<?php echo $form['background_color']->render(array('class' => 'jscolor')); ?>