Foros del Web » Programando para Internet » Javascript »

Problemas con un Confirm

Estas en el tema de Problemas con un Confirm en el foro de Javascript en Foros del Web. Hola: Espero me puedan apoyar con esta duda ya que he estado buscando y parece ser que esta correcto mi codigo pero les explico. Tengo ...
  #1 (permalink)  
Antiguo 04/08/2011, 13:02
Avatar de lord_clown  
Fecha de Ingreso: marzo-2011
Mensajes: 43
Antigüedad: 13 años, 1 mes
Puntos: 0
Problemas con un Confirm

Hola:

Espero me puedan apoyar con esta duda ya que he estado buscando y parece ser que esta correcto mi codigo pero les explico.

Tengo una pantalla donde agrego informacion y contabilizo esa informacion y al final tengo un formulario que lo unico que tengo dentro de el es un campo oculto con mi total que se esta contabilizando.

La idea es que al darle en guardar si el total es mayor o menor a cero, mande un warning indicando que la cantidad es mayor o menor a lo que se requiere, pero con esto no quiere decir que no me va impedir pasar, es solo una advertencia, si se da aceptar pues pasa si se da cancelar pues la idea es que se quede en esa pantalla para realizar las modificaciones.

Ahora mi codigo no tiene problemas hasta el momento en que le da aceptar o cancelar, sale el cuadro de dialogo indicando el error correspondiente y previamente validado pero da lo mismo si le doy aceptar o cancelar, la respuesta siempre me manda como si le diera aceptar. Mi codigo es el siguiente:

Código:
<script type="text/javascript">
	function valida_envia(){ 
		//valido que el super_total=0 
    	super_total = document.fvalida.super_total.value ;
    	document.fvalida.super_total.value=super_total; 
    	if (super_total<0){ 
       		if (confirm('SELECCIONÓ MAS TELA DE LA QUE SE TIENE EN LA COTIZACION. ¿QUIERE CONTINUAR?'))
				location.href="test.php";
			else
				location.href="rem_export.php";
			
		}else{ 
       		if (super_total>0){ 
          		if(confirm('SELECCIONÓ MENOS CANTIDAD DE TELA QUE SE TIENE EN LA COTIZACION. ¿QUIERE CONTINUAR?'))
					this.form.submit();
				else
				location.href="rem_export.php";
				
          	} 
    	}

 
	}
</script>
y el HTML es el siguiente:

Código:
<form action="rem_export_genera.php" method="post" name="fvalida" id="fvalida">
                    <input type="hidden" name="super_total" id="super_total" value="<?php echo $super_total; ?>" />
                    <input type="hidden" name="valor" value="2" />
                    <input type="submit" value="GUARDAR" onclick="valida_envia()" />
                    </form>
Espero me puedan ayudar o bien me orienten hacia alguna alternativa ya que he buscado y aparentemente creo yo está bien, el detalle es que no respeta la opción de Cancelar.

Saludos
  #2 (permalink)  
Antiguo 04/08/2011, 15:25
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Problemas con un Confirm

Creo que deberías poner la validación en el form, más o menos así:

<form action="rem_export_genera.php" method="post" name="fvalida" id="fvalida" onsubmit="valida_envia();return false;"> el return false es necesario para que si el script detiene el proceso no se complete el envio.

y el input tipo submit sólo quedaría así:
<input type="submit" value="GUARDAR" />
  #3 (permalink)  
Antiguo 04/08/2011, 15:33
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problemas con un Confirm

@ocp001a,
estas casi en lo correcto, pero no es ahi donde iria el return false. debe ir en la función, ya que de acuerdo a lo que el usuario responda, debe retornar false o true.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 04/08/2011, 16:48
Avatar de lord_clown  
Fecha de Ingreso: marzo-2011
Mensajes: 43
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problemas con un Confirm

Gracias por las respuestas!

Pero en que parte iría el return false ya lo había probado, y lo puse en lugar de poner los location.href . . . y trabajaba igual de mal, no me funcionaba la cancelacion
  #5 (permalink)  
Antiguo 04/08/2011, 16:58
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problemas con un Confirm

porque ademas del return en la función, tambien debes hacer return de lo devuelto por la función al invocarla. es decir...
Código:
<element event="return function_call();">...</element>
<script>
function function_call(){
...
return true || false;
}
</script>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 05/08/2011, 11:35
Avatar de lord_clown  
Fecha de Ingreso: marzo-2011
Mensajes: 43
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problemas con un Confirm

Hola de nuevo . . .

Sigo igual, aunq coloque como dices zerokilled el return true || false pero algo que no entendi es la parte del element; no se mucho javascript, espero me puedas explicar un poco mas mientras leo para que sirve el element ya que nunca lo habia ocupado.

gracias
  #7 (permalink)  
Antiguo 05/08/2011, 18:30
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problemas con un Confirm

el código provisto no es una solución de copia y pega. es solo para mostrar la estructura. element es un elemento html cualquiera, event es un evento cualquiera, y sobre el return true || false fue simplemente para indicar que debes devolver true o false de acuerdo a las condiciones que tu indiques.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: confirm, html, php, formulario
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 01:44.