这是我的问题。我正在尝试验证表单,并确保在允许表单提交之前提供用户名。我所有的功能都正常工作,包括我的PHP脚本检查用户名。不过,我无法停止表单提交时提交。我得到的是我定义的AJAX .error(消息)。 Firebug报告为什么不能在表单提交时处理我的ajax函数?
throw Components.Exception("prompt aborted by user", Cr.NS_ERROR_NOT_AVAILABLE);
但是,当我调用e.preventDefault();在username_exists函数之外,它会停止提交表单,并允许我在前面提到的函数中进行检查。我完全难过,希望你能帮上忙。谢谢。
PS。我甚至不能做一个简单的警报()这个函数
$(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');
});
}
您正在使'$ this'成为一个全局变量。也许它在其他地方得到更新? –
@火箭除了里面的函数,我还没有在其他任何地方使用它。 – yehuda
为什么downvote?请解释! – yehuda