这是我的问题。我正在尝试验证表单并确保在允许表单提交之前用户名可用。我的所有功能都正常工作,包括我的 PHP 脚本检查用户名。但是我无法阻止表单在提交时提交。我得到的是我定义的 AJAX .error(message)。萤火虫报告
throw Components.Exception("prompt aborted by user", Cr.NS_ERROR_NOT_AVAILABLE);
但是,当我调用 e.preventDefault(); 在 username_exists 函数之外,它会停止表单提交,并允许我在上述函数内部进行检查。我完全被难住了,希望你能帮忙。谢谢。
PS。我什至无法在该函数中执行简单的 alert()
$(function(){
check_username_onsubmit();
});
function check_username_onsubmit(){
$this = $('#username.registerForm');
$('form.registerForm').submit(function(e){
username_exists($this, function(data){
if(data.found == 1){
e.preventDefault();
alert('Username Taken');
}else{
alert('Username Free');
}
});
// e.preventDefault();
});
}
function username_exists($this, callback){
var username = $this.val();
$.ajax({
url : '../includes/Single Scripts/username_exist.php',
data : {
username : username
},
type : 'POST',
dataType : 'json',
success : function(data){
callback(data);
}
}).error(function(){
alert('An error has occured');
});
}