我有一个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 == '')
相同