如何添加 class 形成输入字段?

How to add class to form input field?

我正在尝试将 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(),
        ));

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

我要添加一个classjscolor!如何通过 JavaScript 或使用此配置添加它?

在呈现模板中的表单元素时,您需要将 class 添加到您的输入中:

<?php echo $form['background_color']->render(array('class' => 'jscolor')); ?>

sfWidgetFormInput(实际上,任何 symfony1 小部件)需要 2 个参数 - $options$attributes。您将 class 作为选项而不是属性传递。在模板中调用 render() 时添加 class 属性是一种选择,但我可能会选择(在大多数情况下)在配置方法 [=15= 中设置表单时这样做]

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 可能是自动生成的,我强烈建议不要修改它。