我正在尝试将 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或使用此配置添加它?
答案 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')); ?>