我有一个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);
}

最佳答案

您在使用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 == '')相同

09-11 19:04