为什么我的Ajax加载php页面?

时间:2015-03-10 17:43:42

标签: javascript php jquery ajax

我有一个HTML表单(id =“registro”),它通过POST发送到PHP页面。 我想通过Ajax验证它,但它仍然加载PHP页面。

借口我只是学习代码和英语,如果你知道更好的方法,我真的很感激。

这是我的代码:

$(document).ready(init);

function init(){
    var usuario = $('#usuario').val;
    var contrasena = $('#contrasena').val;

    $("#aceptar").click(validacion);
}
function validacion(){
    var valido = true;

    if(usuario == ""){
        $("p").text("Ingrese un nombre de usuario.");
        valido = false;
    }
    if(contrasena == ""){
        $("p").text("Ingrese una contraseña.");
        valido = false;
    }

    if(valido){
        envioAjax();
    }else{
        return false; //I think here is the problem but I don't know.
    }
}
function envioAjax(){
    $.post("registro.php", $('#registro').serialize(), recibir);
    return false;
}
function recibir(respuesta){
    $("p").text(respuesta);
}

1 个答案:

答案 0 :(得分:1)

使用val()时出现语法问题,在用户插入之前,您可能无法获得2个输入值

 var usuario = $('#usuario').val //undefined

应该是

 var usuario = $('#usuario').val();

但是,您应该在validacion()方法

中获取这些值
function validacion(){
    /* now get the values */
    var usuario = $('#usuario').val();
    var contrasena = $('#contrasena').val();
    /* remainder of your validation code/ ajax */

}

您目前所拥有的usuario将为undefined,因此不等于空字符串。因此,if(usuario =='')永远不会成立,因为它与if(undefined == '')

相同