Foros del Web » Programando para Internet » Javascript »

Error al validar un formulario en IE

Estas en el tema de Error al validar un formulario en IE en el foro de Javascript en Foros del Web. Hola, a ver si alguien me puede hechar una mano en esto Tengo un formulario en el cual necesito validar dos campos, valido con la ...
  #1 (permalink)  
Antiguo 26/02/2015, 08:08
 
Fecha de Ingreso: diciembre-2004
Mensajes: 35
Antigüedad: 19 años, 5 meses
Puntos: 0
Error al validar un formulario en IE

Hola, a ver si alguien me puede hechar una mano en esto

Tengo un formulario en el cual necesito validar dos campos, valido con la siguiente en un archivo externo js

function validacion () {

if (varCliente.value == "") {
// Si no se cumple la condicion...
alert('El campo Cliente no puede estar vacio');
varCliente.style.backgroundColor = "#FFFFCC";
varCliente.focus();
return false;

}
else if (varCodProducto.value == "") {
// Si no se cumple la condicion...
varCliente.style.backgroundColor = "#CCFFCC";
alert('El campo Cod Producto no puede estar vacio');
varCodProducto.style.backgroundColor = "#FFFFCC";
varCodProducto.focus();
return false;

} else {
return true;
};

};

El problema es que en Firfox, chrome funciona todo ok, pero en Internet Explorer no funciona.
Como puedo solucionar esto, gracias
  #2 (permalink)  
Antiguo 26/02/2015, 08:23
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Error al validar un formulario en IE

Qué error da en IE? Cómo levantas los valores de varCliente y varCodProducto?
  #3 (permalink)  
Antiguo 26/02/2015, 08:37
 
Fecha de Ingreso: diciembre-2004
Mensajes: 35
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: Error al validar un formulario en IE

No me explique muy bien
El script solo comprueba que esos valores no esten en blanco
IE no da un error estrictamente, lo que ocurre es que esos valores se introducen una base de datos y los campos no aceptan el NULL.
Explorer no ejecuta ese codigo de validacion y directamente me informa de que esos campos no pueden ser null.
  #4 (permalink)  
Antiguo 26/02/2015, 12:17
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Error al validar un formulario en IE

Con los datos que pasas no alcanza para solucionar el problema. Explica como obtienes varCodProducto y varCliente. Sino no hay caso
  #5 (permalink)  
Antiguo 26/02/2015, 12:45
 
Fecha de Ingreso: diciembre-2004
Mensajes: 35
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: Error al validar un formulario en IE

Bien copio aqui el codigo

en el index.php

<form method="post" name="form1" action="<?php echo $editFormAction; ?>" onsubmit="return validacion ()">

<label for="varCliente">Nom. Cliente</label>
<input type="text" id="varCliente" name="varCliente" value="" class="form-control">
<label for="varCodProducto"></label>
<input type="text" id="varCodProducto" name="varCodProducto" value="" class="form-control" >

<input type="submit" value="GUARDAR" class="btn btn-success btn-sm pull-right ">
<input type="hidden" name="MM_insert" value="form1">

</form>

logicamente en el head enlazo el archivo funciones.js

function validacion () {
if (varCliente.value == "") {
// Si no se cumple la condicion...
alert('El campo Cliente no puede estar vacio');
varCliente.style.backgroundColor = "#FFFFCC";
varCliente.focus();
return false;

}
else if (varCodProducto.value == "") {
// Si no se cumple la condicion...
varCliente.style.backgroundColor = "#CCFFCC";
alert('El campo Cod Producto no puede estar vacio');
varCodProducto.style.backgroundColor = "#FFFFCC";
varCodProducto.focus();
return false;

} else {
return true;
};
};

El funcionamiento en firefox por ejemplo es sencillo si los inputs se han completado escribe en la base de datos de lo contrario con un alert te avisa de que faltan esos campos, en IE no aparece ese mensaje y te dirección a un pagina con el error de escritura en la bd.
  #6 (permalink)  
Antiguo 26/02/2015, 12:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Error al validar un formulario en IE

Hola:

varCliente "a secas" no vale... si es el id de un elemento debe usarse document.getElementById("varCliente"), y si es el atributo name de un control debes referenciarlo desde el formulario: document.forms[el_que_sea],

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 26/02/2015 a las 17:30 Razón: ortografía
  #7 (permalink)  
Antiguo 26/02/2015, 13:48
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Error al validar un formulario en IE

A tu función le falta declarar las variables varCliente y varCodProducto como me suponía. Debería ser así:

Código Javascript:
Ver original
  1. function validacion () {
  2.  
  3. var varCliente     = document.getElementById("varCliente");
  4. var varCodProducto = document.getElementById("varCodProducto");
  5.  
  6. if (varCliente.value == "") {
  7. // Si no se cumple la condicion...
  8. alert('El campo Cliente no puede estar vacio');
  9. varCliente.style.backgroundColor = "#FFFFCC";
  10. varCliente.focus();
  11. return false;
  12.  
  13. }
  14. else if (varCodProducto.value == "") {
  15. // Si no se cumple la condicion...
  16. varCliente.style.backgroundColor = "#CCFFCC";
  17. alert('El campo Cod Producto no puede estar vacio');
  18. varCodProducto.style.backgroundColor = "#FFFFCC";
  19. varCodProducto.focus();
  20. return false;
  21.  
  22. } else {
  23. return true;
  24. };

Saludos :)
  #8 (permalink)  
Antiguo 26/02/2015, 14:07
 
Fecha de Ingreso: diciembre-2004
Mensajes: 35
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: Error al validar un formulario en IE

Pues si ese era el error, pero por que funcionaba en todos los navegadores excepto en IE?

Etiquetas: formulario, funcion, js
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 17:58.