您好,我有一张注册表。现在我正在编码用户名检查部分。我想做 3 个控件,如果它们都可以的话我想显示提交按钮。应该是这样的。
But it always shows me first else block:
block 引用>Kullanıcı adı 3 ile 20 karakter arasında olmalıdır.
myscript.js
$(document).ready(function() { var uname = false; var umail = false; var upass = false; var rpass = false; $("#rname").keyup(function() { var username = $('#rname').val().length; if ((username > 3) && (username < 20)) { uname = true; if (uname == true) { var chars = /^[a-zA-Z0-9\.\_]*$/; $("#rname").keyup(function() { var value = this.value; if(chars.test(value) == true) { uname = true; if (uname == true) { $("#rname").keyup(function() { var user_name = $('#rname').val(); $.post("check.php", { username: uName }, function(result){ $("#notName").html(result).show(); }) }); // Check is the username available. }; } // if chars okey else { uname = false; $("#notMail").html("Kullanıcı adın sadece harf, rakam, alt çizgi ve nokta içerebilir.").show(); } }); // Check not allowed chars in username. }; // if lenght okey } // usernamelenght else { uname = false; $("#notName").html("Kullanıcı adı 3 ile 20 karakter arasında olmalıdır.").show(); } }); // keyup }); // Document ready
index.html
<?php require_once "check.php"; ?> <html> <head> <title>jQuery</title> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="sstyle.css"/> <link href='https://fonts.googleapis.com/css?family=Open+Sans:' rel='stylesheet' type='text/css'> </head> <body> <div class="formwrapper"> <form method="post" action="" name="form"> <input type="text" id="rname" class="inputa" name="username" placeholder="Kullanıcı Adı"> <span id="notName"></div> </form> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> <script src="myscript.js"></script> </body> </html>
检查.php
<?php $DB_host = "localhost"; $DB_name = "dbeva"; $DB_user = "root"; $DB_pass = ""; try { $DB_con = new PDO("mysql:host={$DB_host};dbname={$DB_name}",$DB_user,$DB_pass); $DB_con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo $e->getMessage(); } if (isset($_POST["username"])) { $username = $_POST["username"]; $stmt = $DB_con->prepare("SELECT user_name FROM users WHERE user_name=:uname"); $stmt->execute(array(':uname'=>$username)); $row = $stmt->fetch(PDO::FETCH_ASSOC); if($row['user_name'] == $username) { echo "Not"; } else { echo "Okey"; } } ?>
最佳答案
@Brown 我修改了你的代码。也许这段代码可以帮助您解决该问题。
$(document).ready(function() {
$("#rname").keyup(function() {
var username = $('#rname').val();
var uname = checkUsername(username);
if (!uname) return;
var umail = charValidation(username);
if (!umail) return;
// code to show button...
});
});
function checkUsername(username){
var charLength = username.length;
if((charLength > 3) && (charLength < 20)){
if (checkUsernameAlreadyExists(username)) {
$("#notName").html("Not exists").show(); //is not already exists.
return true;
}
else{
$("#notName").html("Already Exists ").show(); //is already exists.
return false;
}
}
else{
$("#notName").html("Kullanıcı adı 3 ile 20 karakter arasında olmalıdır.").show();
return false;
}
}
function charValidation(username){
var chars = /^[a-zA-Z0-9\.\_]*$/;
if(chars.test(username)){
return true;
}
else{
$("#notMail").html("Kullanıcı adın sadece harf, rakam, alt çizgi ve nokta içerebilir.").show();
return false;
}
}
function checkUsernameAlreadyExists(username){
$.post("check.php", { username: username },function(result){
return result; //true or false;
});
}
关于javascript - 用户名输入 If Else block 无法正常工作/Javascript - jQuery - AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37138935/