Есть ли в Zend-Form встроенный способ скрыть значение поля ввода SUBMIT? - PullRequest
0 голосов
/ 08 июня 2009

Если я создаю форму:

        $search_words = new Zend_Form_Element_Text('text');
    $search_words->setRequired(true)->setDecorators(array(array('ViewHelper')));
    $form->addElement($search_words);

    $go =  new Zend_Form_Element_Submit('gogogo');
    $go->setDecorators(array(array('ViewHelper')))
       ->setIgnore(true);
    $form->addElement($go);

С методом GET. Я увижу в URL gogogo = gogogo. Если бы я сам писал разметку, я бы просто не давал атрибут submit [name], и ​​это решило бы это. Попытка установить для имени отправителя значение '' не будет работать (либо выдает исключение, либо игнорируется, зависит от того, как вы это делаете).
Какие-нибудь (встроенные) идеи?

Ответы [ 2 ]

1 голос
/ 09 июня 2009

Другая возможность - отключить кнопку отправки перед отправкой формы:

$go->setDecorators(array(array('ViewHelper')))
   ->setIgnore(true)
   ->setAttrib('onclick', 'this.disabled = true');

Таким образом, значение кнопки отправки будет игнорироваться при отправке формы.

0 голосов
/ 08 июня 2009

Есть несколько возможных вариантов:

  1. Используйте пользовательский декоратор для создания разметки, поэтому атрибут имени не указан
  2. Используйте функцию замены строк в разметке, возвращаемой методами рендеринга Zend_Form, чтобы удалить атрибут
  3. Что я часто делаю, как следует

Обычно я добавляю собственный маршрут, чтобы допустимо любое из следующих действий:

 domain.tld/search/keyword
 domain.tld/search?q=keyword

Затем вы можете использовать javascript для перенаправления на более чистую форму URL-адреса, заботясь о том, чтобы urlencode поля ключевого слова

Большинство ваших пользователей увидят чистый URL таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...