Pregunta

Me estoy haciendo una validación formulario web utilizando webform_form_alter. Estoy usando webform_form_alter porque me cambio determinado contenido en un "seleccionar" campo.

En mi formulario web-form-317.tpl.php he definido nuevos conjuntos de campos Apreté los campos en este nuevo conjunto de campos y desarmar el original del formulario web.

$form['submitted']['ContactInfo'] = array(
'#type' => 'fieldset',
'#prefix' => '<div id="ContactInfo">',
'#suffix' => '</div>',
'#weight' => -10,
'#title' => 'Contact Information'
);

$form['submitted']['ContactInfo']['phone_home'] = $form['submitted']['phone_home'];
unset($form['submitted']['phone_home']);

en mi webform_form_alter tengo el siguiente código:

switch ($form_id)
{
case 'webform_client_form_317':
{
$form['#validate'][] = 'validate_form';
}
}

Mi Validate_form miradas de funciones como:

function validate_form($form_id, $form_values)
{
      if ($form_values['submitted_tree']['ContactInfo']['phone_home'] == "")
      {
             form_set_error('phone_error', t('Please enter a home phone number.'));
      }
}

El problema es que los $ form_values ??[ 'submitted_tree'] [ 'ContactInfo'] [ 'phone_home'] regresa como nada ni siquiera es el usuario ha introducido algo en el campo de texto.

¿Alguna sugerencia sobre lo que estoy haciendo mal?

Como segunda cuestión en caso de que alguien también las respuestas, ¿Cómo modifico la de estos campos de texto para establecer la clase de "forma-texto de error requerido" por lo que aparecen en rojo con el resto de los campos obligatorios.

Gracias

¿Fue útil?

Solución

Espero que no escribe este código en el módulo de formulario web, pero he hecho su un módulo personalizado para ello.

En el primer caso, su función debe ser

function validate_form($form, &$form_state) {
    if ($form_state['values']['submitted_tree']['ContactInfo']['phone_home'] == "") {
         form_set_error('phone_home', t('Please enter a home phone number.'));
    }
}

Si usted está hablando de la clase de error, Drupal agregarlo a todos los campos que tiene un conjunto de error como se hace en el código de seguridad. Tiene que pasar en el nombre del campo de formulario como primer parámetro a la función form_set_error.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top