Tôi rất mới để lập trình jQuery và javascript. Tôi có một chương trình dưới đây kiểm tra xem tên người dùng có được thực hiện hay không. Hiện tại, tập lệnh PHP luôn trả về.post bên trong jQuery.validator.addMethod luôn trả về false
if(isset($_POST["username"]))//&& isset($_POST["checking"]))
{
$xml="<register><message>Available</message></register>";
echo $xml;
}
Chức năng đăng nhập hoạt động nhưng kiểm tra tên người dùng thì không. Bất kỳ ý tưởng? Đây là tất cả mã của tôi:
$(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;
});
});
xin lỗi :(nó không hiệu quả, trả về false Tôi đã thay đổi chức năng gọi lại thành công vào:. If ($ ("thông báo", xml) .text() == "Có sẵn") trả về true, khác trả về false; –
@abdullah - Không có sự khác biệt trong hàm 'return' đó, chỉ cần thêm mã ... nếu câu trả lời bạn đã đăng hoạt động nhưng cái này không phải là tệp php trong Câu hỏi của bạn không chính xác và bạn nên cập nhật câu hỏi –
@Nick: Tôi nghĩ rằng sự cố là sự trở lại của hàm giả trong tham số sau "checkAvailability", là hàm (giá trị, phần tử) {} . không có gì ~ = sai, đúng? Nó chỉ làm một số hàm ajax trả về một số giá trị. Nhưng "hàm (giá trị, phần tử)" không trả lại bất kỳ thứ gì. Tôi là một người mới bắt đầu, chỉ là suy nghĩ của tôi mặc dù :) –