無効になっている要素の1つを含むZendフォームを表示したい。ユーザーが表示できるように値を設定していますが、ユーザーが編集できないように無効にしたいと思います。これは、ユーザーが編集できないように見えるように、何らかのcss/javascriptを使用する場合もあります。これは私の要素です:
$this->addElement('text', 'username', array(
'label' => 'Username:',
'required' => true,
'filters' => array('StringTrim'),
'validators' => array(
array('StringLength', false, array(2, 50))
)
));
あなたは使用できるはずです:
$this->username->setAttrib('disabled', 'disabled');
私もできると思います:
$this->addElement('text', 'username', array(
'label' => 'Username:',
'required' => true,
'filters' => array('StringTrim'),
'validators' => array(
array('StringLength', false, array(2, 50))
),
'attribs' => array('disabled' => 'disabled')
));
これは正常に動作します...ヘルプを完了するためだけに:あなたがコントローラにいる場合は、次のことができます:
$form->selRole->setAttribs(array('disable' => 'disable'));
selRoleは選択フィールドの名前です
最新のzf2.2.1では、これをコントローラーで実行できます。
$form->get('username')->setAttributes(array(
'disabled' => 'disabled',
));
$form->getElement("username")->setAttribs(array('disabled' => 'disabled', ));
または
$form->getElement("username")->setAttrib('disabled', 'disabled');
このコードをアプリケーションに適用します
$formelement->setAttrib('readonly', 'true');
$formelement->setAttrib('style', 'pointer-events: none');
$ var-> setAttribs(array( 'disabled' => 'disabled'));
file element
フォーム送信後の設定:
$element->setValueDisabled(true);
@デニス:
JavaScriptを無効にすれば、フォームを再び有効にできます。そのため、JavaScriptを信頼することはできません。ネイティブHTMLを使用すると無効化されますが、disabled属性を削除することで簡単に回避できます。
最良のオプションは、フォーム自体の代わりに必要な値を表示し、フォームやその要素を無効にすることです。
私はあなたの投稿にコメントを直接追加できればいいのですが、私は一部の担当者です。
// disable checkbox using JS add-on
$checkbox->setAttribute('onclick', 'return false');
利点:ボックスの元の色は保持されますが、ユーザーがボックスの値を変更することはできません。
他の回答のdisabled
メソッドを使用すると、チェックボックスの色が「グレー表示」に変わります。ここで説明されている方法ではありません。