Search code examples
drupaldrupal-7drupal-fapi

Drupal 7 - input form readonly and apply style


I need to apply style and read-only property to an input element of a drupal form. I coded the following:

$form['precio'] = array(
  '#type' => 'textfield',
  '#title' => t('Precio'),
  '#default_value' => ''.$precio,
  '#size' => 20,
  '#required' => TRUE,
  '#attributes' => array($inputAtributo => 1),
  '#description' => t('Modifica el precio '),
);

And at '#attributes' => array($inputAtributo => 1),

Before create form, I check if this input should be readonly and apply some style:

if ($tarifa !='' & $tarifa=='N')
$inputAtributo=" readonly style=\"background: none repeat scroll 0 0 #EAEAEA;\" ";
else
$inputAtributo = "";

This works, but I think it's not coded correctly

The html code shows the following:

<input id="edit-precio" class="form-text required" type="text" maxlength="128" size="20" value="258" name="precio" ="1"="" style="background: none repeat scroll 0 0 #EAEAEA;" readonly="">

How I can do this better?


Solution

  • #attributes must be an array of key-value-pairs.

    so the array should look like

    '#attributes' => array(
        'readonly'=>'readonly',
        'style'=>'background: none repeat scroll 0 0 #EAEAEA;'
    );