Foros del Web » Programando para Internet » Javascript »

Funcion JS no se ejecuta correctamente (o no se ejecuta como yo quiero)

Estas en el tema de Funcion JS no se ejecuta correctamente (o no se ejecuta como yo quiero) en el foro de Javascript en Foros del Web. Hola a todos. Estoy con un problema que no sé bien como resolverlo. A ver si me podéis echar una mano. El tema es que ...
  #1 (permalink)  
Antiguo 20/12/2011, 03:06
 
Fecha de Ingreso: enero-2008
Mensajes: 27
Antigüedad: 16 años, 2 meses
Puntos: 0
Funcion JS no se ejecuta correctamente (o no se ejecuta como yo quiero)

Hola a todos.

Estoy con un problema que no sé bien como resolverlo. A ver si me podéis echar una mano.

El tema es que tengo un formulario que, antes de enviarse, pasa por una función javascript para validar los campos.

El formulario está declarado de la siguiente forma:
Código HTML:
<form id="frmTareaActualizar" name="frmTareaActualizar" method="post" action="consultaTarea.php?id=<?php echo $tarea['idtarea'] ?>" onsubmit="validaDatosActualizar(); return false"> 
Y mi función validaDatosActualizar() es la siguiente (tiene muchos alerts para intentar ver el problma):

Código:
function validaDatosActualizar(){
	alert("Entro");
	var valorasunto = document.getElementById("asunto").value;
	var valorestado = document.getElementById("estado").value;
	var valorfecha = document.getElementById("fechafin").value;
	alert("Asunto " + valorasunto);
	alert("Estado " + valorestado);
	alert("Fecha Fin " + valorfecha);
	alert("Paso");
	if (document.getElementById("asunto").value != ""){
		alert(document.getElementById("estado").value);
		if ((document.getElementById("estado").value == "Abierta") && (document.getElementById("fechafin").value != "")){
			 alert("El expediente no puede estar abierto y tener la fecha de fin informada");
			 return false;
		}
		else{
			alert("Entro al else");
			if ((document.getElementById("estado").value == "Cerrada") && (document.getElementById("fechafin").value == "")){
				alert("El expediente no puede estar cerrado y tener la fecha de fin sin informar");
				return false;
			}
			else{
				alert("Voy a actualizar");
				ActualizarTarea(); 
				return true;
			}
		}
	}
	else{
		alert("Especifique el asunto del expediente.");
		return false;
	}
}
Cuando le doy a enviar el formulario me aparece el alert "Entro" y me actualiza los datos sin mostrarme ningún alert más.

No debería acutalizar los datos ya que debería fallar en este if:
Código HTML:
if ((document.getElementById("estado").value == "Abierta") && (document.getElementById("fechafin").value != ""))
Las lineas estas:
Código:
	var valorasunto = document.getElementById("asunto").value;
	var valorestado = document.getElementById("estado").value;
	var valorfecha = document.getElementById("fechafin").value;
son para intentar ver los valores con los que se ejecuta la función, pero no consigo ver nada.

Espero que podáis decirme algo.

Muchas gracias a todos.
Un saludo.
  #2 (permalink)  
Antiguo 20/12/2011, 04:00
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: Funcion JS no se ejecuta correctamente (o no se ejecuta como yo quiero)

Hola:

Cuando se produce un error javascript, se aborta el resto de instrucciones, y el flujo de datos continúa como si no se hubiese ejecutado nada, así que es probable que tengas algún error (puede que estés usando el atributo name en vez del id, o que algunos de esos ids esté repe y el visible para javascript (el primero) no sea un control del formulario, y no valga el value...

Te diría que lo intentases con un botón tipo button para que puedas ver si existen errores...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 20/12/2011, 09:02
 
Fecha de Ingreso: enero-2008
Mensajes: 27
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Funcion JS no se ejecuta correctamente (o no se ejecuta como yo quiero)

Gracias Caricatos.

Después de darle 20 millones de vueltas he encontrado el fallo. Estoy usando tanto el atributo 'id' como el atributo 'name', pero en uno de los elementos los tenias nombrados de forma distinta.

Muchas gracias por todo.
Un saludo.

Etiquetas: correctamente, ejecuta, formulario, funcion, js, php
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 07:52.