Подтвердить что ты не робот

Как отключить элемент формы в форме Zend?

Я хочу отобразить форму Zend с одним из элементов, показанных как отключенные. Я устанавливаю значение, чтобы пользователь мог его видеть, но я хочу отключить его, чтобы пользователь не мог его редактировать. Это может также включать какой-то css/javascript, чтобы гарантировать, что он выглядит, и не редактируется пользователем. Это мой элемент:

    $this->addElement('text', 'username', array(
        'label'      => 'Username:',
        'required'   => true,
        'filters'    => array('StringTrim'),
        'validators' => array(
            array('StringLength', false, array(2, 50))
        )
    ));
4b9b3361

Ответ 1

Вы должны иметь возможность использовать:

$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')
));

Ответ 2

Это прекрасно работает... Просто чтобы завершить помощь: Если вы находитесь в контроллере, вы можете:

$form->selRole->setAttribs(array('disable' => 'disable'));

selRole - это имя поля выбора

Ответ 3

В последнем zf2.2.1 вы можете сделать это в своем контроллере;

$form->get('username')->setAttributes(array(
    'disabled' => 'disabled',  
)); 

Ответ 4

$form->getElement("username")->setAttribs(array('disabled' => 'disabled', ));

или

$form->getElement("username")->setAttrib('disabled', 'disabled');

Ответ 5

$var- > setAttribs (массив ('disabled' = > 'disabled'));

Ответ 6

Примените этот код в своем приложении

$formelement->setAttrib('readonly', 'true');
$formelement->setAttrib('style', 'pointer-events: none');

Ответ 7

Только это работало для меня при использовании file element при настройке после отправки формы:

$element->setValueDisabled(true);

Ответ 8

// disable checkbox using JS add-on
$checkbox->setAttribute('onclick', 'return false'); 

Преимущество: сохраняет исходный цвет окна, но не позволяет пользователю изменять значение поля.

Использование метода disabled других ответов изменяет цвет флажка на "серое". Метод, описанный здесь, не соответствует.

Ответ 9

@Dennis:

Отключение Javascript достаточно, чтобы снова включить форму, поэтому вы не можете действительно полагаться на Javascript. Использование собственного HTML отключает его лучше, но также просто работает, удаляя отключенный атрибут.

Лучший вариант показывает значения, которые вы хотите вместо самой формы, и отключите форму и/или ее элементы.

Желаю, чтобы я добавил комментарий к вашему сообщению, но я немного верю.