La comprobación de formulario de jquery devuelve verdadero, pero debe devolver falso
Estoy ejecutando esta verificación de formulario cuando se envía el formulario:
if((formData[4].value == 1 || formData[4].value == 2) && !formData[2].value) {
alert('Please fill out the key field');
return false;
} else {
$.ajax({
url: "/ajax/key_check.php",
cache: false,
data: "key=" + formData[4].value,
dataType: "html",
success: function(data) {
if(data == 1) {
alert('Key already exists');
return false;
}
}
});
return true;
}
El script funciona, alerta que la clave ya existe si los datos son == 1, sin embargo, el formulario aún se envía. Pensé devolviendo false si data == 1 detendría el procesamiento del formulario, sin embargo, continúa y agrega la clave de todos modos y la clave emergente ya existe el mensaje. ¿Cómo puedo evitar que el formulario se envíe si data == 1? Intenté incluso hacer esto:
if(data == 1) {
alert('Key already exists');
return false;
} else {
return true;
}
Luego se eliminó el retorno verdadero en la parte inferior del script, pero ocurre el mismo problema. Aparece una ventana emergente pero el formulario aún se procesa.