デフォルトでは、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');
これらの属性名と小文字を使用すれば機能します。
これを試して:
$ text = new Zend_Form_Element_Text( 'subject');
$ text-> setAttrib( 'maxlength'、 '100');
その属性はテキスト入力によってのみ認識されるため、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'));
私は専門家ではありませんが、小文字の属性名を使用してみましたか?それはかなり粘着性がありますが、それが機能する場合、言語がこの点で壊れていることを示唆しています。
一般に、フィールド属性をフィールドセットクラス(または設定方法に応じてフォームクラス)に追加することをお勧めします。
次に例を示します。
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
],
]
);
}