Je suis très nouveau à la programmation jQuery et javascript. J'ai un programme ci-dessous qui vérifie si le nom d'utilisateur est pris ou non. Pour l'instant, le script PHP retourne toujours.post à l'intérieur jQuery.validator.addMethod retourne toujours faux
if(isset($_POST["username"]))//&& isset($_POST["checking"]))
{
$xml="<register><message>Available</message></register>";
echo $xml;
}
La fonction de connexion fonctionne, mais pas la vérification du nom d'utilisateur. Des idées? est ici tout mon code:
$(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;
});
});
désolé :(il ne fonctionne pas, je retourne faux ai changé la fonction de rappel de succès dans:. If ($ ("message", xml) .text() == "Disponible") return true; else return false; –
@abdullah - Il n'y a pas de différence dans cette fonction 'return', juste du code supplémentaire ... si la réponse que vous avez posté fonctionne mais que celle-ci ne contient pas le fichier php –
@Nick: Je pense que le problème était le retour de la fonction dummy dans le paramètre après "checkAvailability", qui est la fonction (value, element) {} . rien ~ = faux, droite? Il a juste fait une fonction ajax qui a retourné de la valeur. Mais "la fonction (valeur, élément)" n'a rien retourné elle-même. Je suis un débutant, seulement mes pensées :) –