フォームの値のチェックをJavaScriptにて行っているのですが、Ajax通信の結果を待つことなく値を返してしまいます。
javascript
1function check(){ 2 //idが使用されているか 3 isUsedAPI(username).done(function(result) { 4 message = result["Message"] 5 if (message != "NOTUSED") { 6 if (message == "ERROR") { 7 $(".message").html(result["Err"]); 8 return false 9 } 10 $(".message").html("そのIDはすでに使用されています"); 11 return false 12 } 13 return true 14 }).fail(function() { 15 $(".message").html("通信エラー"); 16 return false 17 }) 18} 19function isUsedAPI(id) 20{ 21 return $.ajax({ 22 url: "http://localhost:8080/isUsed", 23 type: "POST", 24 dataType: 'json', 25 data: { 26 userid: id 27 }, 28 timespan: 1000 29 }) 30}
html
1 <form action="create.php" method="POST"> 2 ユーザー名 3 <input id="user" type="text" name="userid" class="input"> 4 ニックネーム(公開される名前) 5 <input id="nick" type="text" name="nickname" class="input"> 6 パスワード 7 <input id="pass" type="password" name="password" class="input"> 8 パスワード(確認) 9 <input id="repass" type="password" class="input"> 10 <button type="submit" class="loginbutton" onclick="return check()">登録</button> 11 </form>
これを実行するとisUsedAPI()の結果に関わらずリクエストが行われてしまいます
ご教授お願いします
回答1件
あなたの回答
tips
プレビュー