Buenas drupaleros,
hoy vamos a ver un truco muy sencillo y que nos puede resultar muy útil. En ocasiones, por diferentes circunstancias un formulario tiene los tabindex mal asignados. Esta mala asignación puede ser debida por ejemplo, porque a la hora de la maquetación hemos recolocado los diferentes campos del formulario, o porque cuando creamos el formulario no tuvimos en cuenta el orden o simplemente porque nos dan ya hecho el formulario y viene totalmente descolocado.
Una solución muy sencilla es utilizar el famoso método form_alter y asignarle a cada campo un tabindex diferente. En el ejemplo que os muestro, asignamos un nuevo tabindex al campo email y name, esto hará que sean campos correlativos a la hora de interactuar con el formulario :
function MyTema_form_alter(&$form, &$form_state, $form_id) {
if($form_id == 'mi_formulario'){
$form['email']['#attributes']['tabindex'][0] = '60';
$form['name']['#attributes']['tabindex'][0] = '61';
}
}
Con el atributo tabindex, lo que hacemos es ordenar la asignación del foco. Recordemos que la propiedad tabindex mejora la accesibilidad de la web.
Espero que os sea util.
Drupal y rock and roll