Saltar al contenido

Drupal: “Se ha detectado una elección ilegal”

Solución:

Para resolver el problema, establezca ‘#validated’ => ‘TRUE’ en la definición de su elemento de formulario.

Example:
 form['my_dynamic_select'] = array(
 … 
 '#type' => 'select',
 '#validated' => TRUE
 …
 )

Razón:

Si estamos usando un SELECT (menú desplegable) poblado dinámicamente a través de AJAX, aparecerá este error. Cuando un valor no está presente en la matriz de opciones, Drupal lo considerará ilegal. Entonces, el usuario no pudo inyectar un valor ilegal en la base de datos.

Pero en nuestro caso está totalmente bien, así que necesitamos usar el atributo 'validated' => TRUE para omitir la validación.

Fuente: Se ha detectado una elección ilegal. Por favor contacte al administrador del sitio.

Debe hacerlo en el lado del servidor, utilizando un hook_form_alter() función y la #limit_validation_errors propiedad de la API de formulario. Deberá modificarlo para que se adapte a sus propias necesidades, pero lo siguiente debería ayudar:

function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'my_form') {
    $form['submit']['#limit_validation_errors'] = array();
  }
}

Tenga cuidado de que lo anterior ignore todos errores de validación en el formulario. Deberá poner los nombres de los elementos del formulario que hacer quiere ser validado en el #limit_validation_errors formación.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *