Скрытие ввода текста без его `type =" hidden "` - PullRequest
0 голосов
/ 09 мая 2019

Что у меня есть

Я использую FormController для создания ввода . Конкретные входные данные будут часто обновляться Javascript для внутренних целей, и я хочу, чтобы они были скрыты. В этом случае я не могу использовать type="hidden", вместо этого оно должно быть type="text", чтобы оно не было проверено с помощью предотвращения фальсификации формы при отправке.

Что я пытался

  • Добавление параметров 'hidden' => true к $this->Form->create() работает, если всю форму необходимо скрыть. Этот точный атрибут, похоже, не работает для отдельных входных данных, созданный с использованием $this->Form->input() и $this->Form->control()
  • Для конкретного ввода первое, что приходит на ум, - это добавление 'style' => 'display:none' к его опциям, но это не похоже на чистое решение CakePHP-way
  • Мне кажется, я видел, как кто-то упоминал способ сделать именно это здесь. Я думаю, что это был атрибут, который вы бы добавили к опциям. Я искал ответы и комментарии, используя этот сайт и Google, но ничего не нашел.

Пожалуйста, сообщите!

1 Ответ

2 голосов
/ 09 мая 2019

Вы можете создать скрытый ввод и освободить его от защиты формы в случае необходимости, либо разблокировав поле с помощью метода unlockField():

$this->Form->unlockField('field_name');
echo $this->Form->hidden('field_name');

, либо передав false или 'skip' для опции secure:

echo $this->Form->hidden('field_name', ['secure' => false]);
echo $this->Form->hidden('field_name', [
    'secure' => \Cake\View\Helper\FormHelper::SECURE_SKIP
]);

См. также

...