これが私の問題です。フォームの送信を許可する前に、フォームを検証し、ユーザー名が使用可能であることを確認しようとしています。ユーザー名をチェックするPHPスクリプトを含め、すべての関数が正しく機能します。ただし、送信時にフォームの送信を停止することはできません。私が得るのは、私が定義したAJAX .error(message)です。Firebugレポート
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');
});
}