Soy muy nuevo en la programación de jQuery y Javascript. Tengo un programa a continuación que verifica si se toma el nombre de usuario o no. Por ahora, el script PHP siempre devuelve.post dentro de jQuery.validator.addMethod siempre devuelve falso
if(isset($_POST["username"]))//&& isset($_POST["checking"]))
{
$xml="<register><message>Available</message></register>";
echo $xml;
}
La función de inicio de sesión funciona, pero la comprobación del nombre de usuario no. ¿Algunas ideas? Aquí está todo de mi código:
$(document).ready(function() {
jQuery.validator.addMethod("checkAvailability",function(value,element){
$.post("login.php" , {username:"test", checking:"yes"}, function(xml){
if($("message", xml).text() == "Available") return true;
else return false;
});
},"Sorry, this user name is not available");
$("#loginForm").validate({
rules: {
username: {
required: true,
minlength: 4,
checkAvailability: true
},
password:{
required: true,
minlength: 5
}
},
messages: {
username:{
required: "You need to enter a username." ,
minlength: jQuery.format("Your username should be at least {0} characters long.")
}
},
highlight: function(element, errorClass) {
$(element).fadeOut("fast",function() {
$(element).fadeIn("slow");
})
},
success: function(x){
x.text("OK!")
},
submitHandler: function(form){send()}
});
function send(){
$("#message").hide("fast");
$.post("login.php" , {username:$("#username").val(), password:$("#password").val()}, function(xml){
$("#message").html($("message", xml).text());
if($("message", xml).text() == "You are successfully logged in.")
{
$("#message").css({ "color": "green" });
$("#message").fadeIn("slow", function(){location.reload(true);});
}
else
{
$("#message").css({ "color": "red" });
$("#message").fadeIn("slow");
}
});
}
$("#newUser").click(function(){
return false;
});
});
lo siento :(no funcionó, devuelve false he cambiado función de devolución de éxito en:. If ($ ("mensaje", xml) .text() == "Disponible") devuelve verdadero; else return false; –
@abdullah - No hay diferencia en esa función 'return', solo código extra ... si la respuesta que publicó funciona pero esta no lo hace, entonces el archivo php en su pregunta no es precisa y debe actualizarla. –
@Nick: Creo que el problema fue el retorno de la función ficticia en el parámetro después de "verificar disponibilidad", que es función (valor, elemento) {} . En realidad, regresó nada ~ = falso, ¿derecho? Simplemente hizo alguna función ajax que devolvió algún valor. Pero "la función (valor, elemento)" no devolvió nada en sí misma. Soy un principiante, solo mis pensamientos :) –