Foros del Web » Programando para Internet » Javascript »

No funciona bien esta validación de formulario

Estas en el tema de No funciona bien esta validación de formulario en el foro de Javascript en Foros del Web. A ver si alguien puede ayudarme a sacar en claro esto. Se trata de un formulario muy simple, el cuál intento validar en dos partes, ...
  #1 (permalink)  
Antiguo 02/05/2008, 00:50
Avatar de Mikimoto74  
Fecha de Ingreso: enero-2005
Mensajes: 88
Antigüedad: 19 años, 3 meses
Puntos: 2
Exclamación No funciona bien esta validación de formulario

A ver si alguien puede ayudarme a sacar en claro esto. Se trata de un formulario muy simple, el cuál intento validar en dos partes, la primera para validar un máximo/mínimo de caracteres en campos de texto, y la segunda, que aún no he hecho, para una validación más exhaustiva.

Lo que pasa es lo siguiente: cuando no introduzco nada, me salen todos los mensajes de error (en este caso dos), pero al hacer clic en enviar, este botón se convierte momentáneamente en campo de texto (si copiais y ejecutais el código de abajo lo comprobareis). Y lo peor es que cuando introduzco un valor válido en el primer campo, no aparece el mensaje de error para el segundo campo, y cuando hago lo mismo solo con el segundo campo, aparece el mensaje de error para ambos. Todo esto en Firefox.

El código:

Código HTML:
<html>
<head>
<title>Untitled Document</title>

<script type="text/javascript">
   /* código javascript abajo */
</script>

</head>

<body>
<form id="form1" name="formulario" method="post" action="#" onSubmit="return validate(this)">
  <table width="200" border="1">
    <tr>
      <td>cadena</td>
      <td><input type="text" name="cadena1" id="cadena1" /></td>
    </tr>
    <tr>
      <td>alfanumerico</td>
      <td><input type="text" name="alfanumerico1" id="alfanumerico1" /></td>
    </tr>
  </table>
  <br />
  <label>
  <input type="submit" name="enviar" id="enviar" value="Enviar"/>
  </label>
</form>
</body>
</html> 

Código javascript:
Código PHP:
var error_message ""

function check_input(miFormfield_valuemin_field_sizemax_field_sizetipomessage) {
    
// Validación de máximos y mínimos
    
if (field_value == '' || field_value.length min_field_size || field_value.length max_field_size) {
          
error true;
    }
    
    
// Validación de tipo de entrada
    /* ...... acciones para esta validación ....*/
    
    
if (error) {
        
error_message error_message "* " message "\n";
    }
}

function 
validate(miForm) {
    
    for (
i=0miForm.elements.lengthi++) {
        if (
miForm.elements[i].type "textfield") {
            switch (
miForm.elements[i].name) {
                case 
"cadena1"check_input(miFormmiForm.cadena1.value510"cadena""El campo cadena debe tener entre 5 y 10 caracteres\n")
                break;
                case 
"alfanumerico1"check_input(miFormmiForm.alfanumerico1.value520"alfanumerico""El campo alfanumerico debe tener entre 5 y 20 caracteres\n")
            }
        }
    }
    
alert (error_message)
    return 
true

  #2 (permalink)  
Antiguo 02/05/2008, 05:52
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: No funciona bien esta validación de formulario

Hola:

Cuando pones return true el formulario se envía, y con false se detiene... supongo que para este caso debería ser:

return error_message == "";

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:51.