默认情况下,Zend Form Text元素没有指定宽度。 Textarea元素的默认值为rows="24"
和cols="80"
。但是当我设定不同的价值时......
$body = new Zend_Form_Element_Textarea('body');
$body->setLabel('Body:')
->setRequired(true)
->setAttrib('COLS', '40')
->setAttrib('ROWS', '4');
$this->addElement($body);
...只添加属性,而不是更改:
<textarea name="body" id="body" COLS="40" ROWS="4" rows="24" cols="80">
指定textarea元素的宽度和高度以及文本元素的列宽的正确方法是什么?
显然,您不能用大写字母指定html属性,否则它会添加重复的属性。
要更改文本区域元素的高度和宽度:
$textarea = new Zend_Form_Element_Textarea('body');
$textarea
->setAttrib('cols', '40')
->setAttrib('rows', '4');
要更改文本元素的宽度:
$text = new Zend_Form_Element_Text('subject');
$text->setAttrib('size', '40');
答案 0 :(得分:19)
如果你使用那些属性名称和小写'em。它将起作用。
答案 1 :(得分:5)
试试这个:
$ text = new Zend_Form_Element_Text('subject');
$ text - &gt; setAttrib('maxlength','100');
答案 2 :(得分:4)
使用setAttrib不会影响stringlength,因为该属性仅由文本输入识别。尝试使用验证器来控制字符串长度。请注意,您还可以设置自定义错误消息。
$text = new Zend_Form_Element_Textarea( 'body' );
$text-> ->setLabel('Body:')
->setAttrib('cols', 50)
->setAttrib('rows', 4)
->addValidator('StringLength', false, array(40, 250))
->setRequired( true )
->setErrorMessages(array('Text must be between 40 and 250 characters'));
答案 3 :(得分:2)
我不是专家,但您尝试使用小写属性名称吗?它非常俗气,但如果它有效,它表明语言在这方面被打破了。
答案 4 :(得分:0)
通常,最好在fieldset类(或表单类中)添加表单属性,具体取决于您的设置方式。
以下是一个例子:
class SomeFieldSet extends Fieldset
{
/**
* @var \Doctrine\Common\Persistence\ObjectManager
* @access protected
*/
protected $objectManager;
/**
* @param ObjectManager $objectManager
* @param SomeEntity $claimPrototype
* @param null $name
* @param array $options
*/
public function __construct(
ObjectManager $objectManager,
SomeEntity $somePrototype,
$name = null,
$options = array()
) {
parent::__construct($name, $options);
$this->objectManager = $objectManager;
$this->setHydrator(new DoctrineObject($objectManager));
$this->setObject($somePrototype);
}
public function init()
{
$this->add(
[
'name' => 'description',
'type' => 'textarea',
'options' => [
'label' => 'Some Label',
'instructions' => 'Some instruction',
],
'attributes' => [
'class' => 'form-control',
'placeholder' => 'Some placeholder',
'required' => 'required',
'rows' => 10
],
]
);
}