我有一个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);
}
答案 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 == '')