Comunidad de diseño web y desarrollo en internet online

no funciona preventDefault dentro de un if

Citar            
MensajeEscrito el 02 Jul 2012 12:44 am
Cordialo Saludo,

He intentado evitar que una página ejecute submit después de una validación de ajax con jQuery pero no ha sido posible que funcione.

He colocado el evento preventDefault, pero no funciona dentro de un if, si lo dejo fuera si funciona.

Ya he probado también con: return false, es más los de la validación de los campos si funciona.

Agradezco de antemano la colaboración que me puedan brindar.

Mi código es:

$(document).ready(function()
{
$("#btnAceptar").click(function(event)
{
var vContinua = true;
if($("#txtUsuario").val().length == 0)
{
$("#txtUsuario").focus();
alert("Por favor ingrese el Usuario");
return false;
}
if($("#txtPassword").val().length == 0)
{
$("#txtPassword").focus();
alert("Por favor ingrese la Contraseña");
return false;
}
$.ajax ({
type: "POST",
url: "cAcceso.php",
data: {txtUsuario: $("#txtUsuario").val(), txtPassword: $("#txtPassword").val()},
success: function(vRetorno)
{
var msgRetorno = jQuery.parseJSON(vRetorno);
if(msgRetorno.vCodErro != 0)
{
vContinua = false;
alert(msgRetorno.vDesErro);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert("Error de Ejecución de Acceso!!!");
}
});
if(vContinua != true)
{
event.preventDefault();
}

});
});

Por cdrafael

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Jul 2012 02:50 pm
Cordial Saludo,

La única solución que pude encontrar fue la siguiente:

En el ajax:

$.ajax ({
type: "post",
url: "cAcceso.php",
data: vParametros,
success: function(vRetorno)
{
var msgRetorno = jQuery.parseJSON(vRetorno);
if(msgRetorno.vCodErro != 0)
{
alert(msgRetorno.vDesErro);
$("#txtUsuario").attr('value', '');
$("#txtPassword").attr('value', '');
$("#txtUsuario").focus();
}
else
{
$(location).attr('href', "cPrincipal.php");
}

},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert("Error de Ejecución de Acceso!!!");
}
});

Y colocar al final, después del ajax:

event.preventDefault();

Así funciona bien.

Gracias.

Por cdrafael

18 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.