2011-07-04 30 views
8

Estoy trabajando en una aplicación de formulario Zend donde mi formulario contiene cuadros de texto con marcas de agua.texto del marcador de posición en el elemento de texto zend

podemos lograr esto en HTML mediante el siguiente código:

<input type="text" placeholder="Search" name="q" /> 

Mi pregunta es cómo añadir el atributo marcador de posición en mi entrada de la caja utilizando el formulario de Zend?

Respuesta

17

Ya ha sido mencionado a utilizar :

$element->setAttrib('placeholder', 'Search'); 

También puede usarlo así al extender Z end_Form

$element = $this->createElement('text', 'q', array(
      'placeholder' => 'Search', 
      'label'  => 'Search' 
)); 

o dentro de la vista mediante Zend_View_Helper_FormText

echo $this->formText('q',null, array('placeholder' => 'Search')); 
+0

Gracias por contestar –

+1

+1 por mostrar un rango de invocaciones alternativas. ;-) –

3

Creo que se puede llamar settAttrib() en su elemento como éste cuando se definen los elementos

$element->setAttrib ('placeholder', 'search'); 
+0

Gracias por contestar –

3

En Zend_Form_Element objetos puede especificar atributos:

$element->setAttrib('placeholder', 'Search'); 
2

Aquí es una actualización para ZF2.
Vas a tener que utilizar esto en su Zend \ Form \ Forma:

$this->add(
    [ 
     'name' => 'q', 
     'type' => 'Text', 
     'options' => [ 
      'label' => 'Search', 
     ], 
     'attributes' => [ 
      'placeholder' => 'Search', 
     ], 
    ] 
); 

setAttrib no existe, pero lo hace setAttribute:

$element->setAttribute('placeholder', 'Search'); 

Pero en vista FormText-helper, puede 't agregar opciones más, por lo que tiene que hacer:

$element = $form->get('q'); 
$saved_placeholder = $element->getAttribute('placeholder'); // works even if not defined 
$element->setAttribute('placeholder', 'Search'); 
echo $this->formText($element); 
$element->setAttribute('placeholder', $saved_placeholder); 

Lo sé, este es un hack feo!

+0

Gracias por compartir @stopi –

Cuestiones relacionadas