Jestem bardzo nowy w programowaniu jQuery i javascript. Mam poniżej program, który sprawdza, czy nazwa użytkownika jest zajęta czy nie. Na razie skrypt PHP zawsze zwraca wartość . Funkcja logowania działa, ale sprawdzanie nazwy użytkownika nie działa. Jakieś pomysły? Oto cały mój kod:.post wewnątrz jQuery.validator.addMethod zawsze zwraca wartość false
$(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;
});
});
przykro :(to nie działa, zwraca false Zmieniłem funkcję zwrotną do sukcesu. If ($ ("message", xml) .text() == "Dostępny") return true; else return false; –
@abdullah - Nie ma różnicy w tej funkcji 'return', tylko dodatkowy kod ... jeśli odpowiedź, którą wysłałeś działa, ale ta nie zawiera pliku php twoje pytanie nie jest dokładne i powinieneś je zaktualizować –
@Nick: Myślę, że problem polegał na zwrocie funkcji fikcyjnej w parametrze po "checkAvailability", która jest funkcją (value, element) {} . nic ~ = false, dobrze? To po prostu zrobiło jakąś funkcję ajax, która zwróciła jakąś wartość. Ale "funkcja (wartość, element)" nic nie zwróciła. Jestem początkującym, tylko moje przemyślenia :) –