登録フォームを作成しようとしています。私はすべてのokey関数がtrueを返す場合、3つの関数で6つの点をチェックしています。最初の関数は、ユーザー名の長さ、ユーザー名文字、およびユーザー名の可用性をチェックします。 2番目の機能は、電子メールの検証と電子メールの可用性をチェック3つ目の機能チェックはパスマッチです。良いことをすべて働かせる関数は、ここまではokeyです。しかし、最初にボタンを隠しておきたい場合は、すべての関数がtrueを返したらボタンを表示したい。しかし、それは動作しません..どこが間違っていますか?ありがとうございます。Javascriptの表示ボタンがTrueを返す場合
$(document).ready(function() {
$("#rname").attr('maxlength','15');
$("#rmail").attr('maxlength','50');
$("#rpass").attr('maxlength','50');
//--------------------------------------------------// MaxLenght Settings
$("#rname").keyup(function() {
var uname = checkUsername();
}); // Username keyup
//--------------------------------------------------// Username Checking
$("#rmail").keyup(function() {
var umail = checkEmail();
}); // Email keyup
//--------------------------------------------------// Email Checking
$("#passone, #passtwo").keyup(function() {
var upass = checkPass();
}); // Email keyup
//--------------------------------------------------// Password Checking
$("#rname, #rmail, #passone, #passtwo").keyup(function() {
var btn = button(uname,umail,upass);
}); // button show hide
//--------------------------------------------------// Button
}); //--------------------------------------------------// Document Ready Ends
function checkUsername() {
var chars = /^[a-zA-Z0-9\.\_]*$/;
var username = document.getElementById("rname").value;
if(chars.test(username) == true) {
$("#notName").html("").show();
if ((username.length > 3) && (username.length < 20)) {
$("#notName").html("").show();
$.post("check.php", { username: username },
function(result){
if (result == true) {
$("#notName").html("").show();
return true;
}
else {
$("#notName").html("Username is already exists!").show();
return false;
}
});
}
else {
$("#notName").html("Username must be between 3 and 20 characters!").show();
return false;
}
}
else {
$("#notName").html("Username can contain just A-Z, 0-9, dot and underscore!").show();
return false;
}
}
//--------------------------------------------------// checkUsername Function
function checkEmail() {
var email = document.getElementById("rmail").value;
$.post("check.php", { vmail: email },
function(result){
if (result == true){
$.post("check.php", { email: email },
function(result){
if (result == true) {
$("#notMail").html("").show();
return true;
}
else {
$("#notMail").html("Email is already exists!").show();
return false;
}
});
}
else {
$("#notMail").html("Please enter a valid Email").show();
return false;
}
});
}
//--------------------------------------------------// checkEmail Function
function checkPass() {
var passOne = document.getElementById("passone").value;
var passTwo = document.getElementById("passtwo").value;
if (passOne == passTwo) {
$("#notPass").html("").show();
return true;
}
else {
$("#notPass").html("Passwords do not match!").show();
return false;
}
}
//--------------------------------------------------// checkPass Function
function button(a,b,c) {
if (a == true && b == true && c == true) {
document.getElementById("button").style.display = "block";
}
else {
document.getElementById("button").style.display = "none";
}
}
[非同期呼び出しからの応答を返すにはどうすればよいですか?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-コール) –
しかし、そのように機能しない関数 – yunusus
はいです。非同期関数である '$。post 'の結果を返そうとしています。 –