Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查是否已使用用户名?_Javascript_Python_Jquery_Html_Cs50 - Fatal编程技术网

Javascript 如何检查是否已使用用户名?

Javascript 如何检查是否已使用用户名?,javascript,python,jquery,html,cs50,Javascript,Python,Jquery,Html,Cs50,我需要使用javascript和python中的flask检查注册表单中的用户名输入,但我不知道如何实现它 我必须在javascript部分和python代码中使用$.get,这应该检查并返回JSONIFYED true或false Python代码: @app.route("/check", methods=["GET"]) def check(): """Return true if username available, else false, in JSON format"""

我需要使用javascript和python中的flask检查注册表单中的用户名输入,但我不知道如何实现它

我必须在javascript部分和python代码中使用
$.get
,这应该检查并返回JSONIFYED true或false

Python代码:

@app.route("/check", methods=["GET"])
def check():
    """Return true if username available, else false, in JSON format"""
username = request.args.get("q")
rows = db.execute("SELECT * FROM users WHERE username = :username", username=username)
if len(rows) >= 1 or len(username) < 1:
    return jsonify(False)
else:
    return jsonify(True)
@app.route(“/check”,方法=[“GET”])
def check():
“”“如果用户名可用,则返回true,否则返回false,格式为JSON”“”
username=request.args.get(“q”)
rows=db.execute(“从username=:username,username=username的用户中选择*)
如果len(行)>=1或len(用户名)<1:
返回jsonify(False)
其他:
返回jsonify(True)
HTML部分:

<form action="/register" method="post" id ="register">
        <div class="form-group">
            <input autocomplete="off" autofocus class="form-control" name="username" placeholder="Username" type="text">
        </div>
        <div class="form-group">
            <input class="form-control" name="password" placeholder="Password" type="password">
        </div>
        <div class="form-group">
            <input class="form-control" name="confirmation" placeholder="Confirm Password" type="password">
        </div>
        <button class="btn btn-primary" id="submittion" type="submit">Register</button>
    </form>
    <script>
       let input = document.querySelector('input[name=username]');
       input.onkeyup = function() {
            $.get('/check?q=' + input.value, function(data) {
                if (data == "FALSE"){
                    data.preventDefault()
                    alert("Username is not available!");
                }
            });
        };
    </script>

登记
让input=document.querySelector('input[name=username]');
input.onkeyup=函数(){
$.get('/check?q='+input.value,函数(数据){
如果(数据==“假”){
data.preventDefault()
警报(“用户名不可用!”);
}
});
};

在SQL中检查用户名后,如果用户名已经存在,则应提醒用户。调试显示它确实在列表中搜索用户名,但它不会发出警报或其他任何信息

您正在返回一个真/假值。在JavaScript中,此值将不是您正在测试的字符串:

if (data == "FALSE")
通过对实际布尔值进行测试,您应该会得到所需的结果:

if (data == false)


我想你应该这样写:

@app.route("/check", methods=["GET"])
def check(username):
    """Return true if username available, else false, in JSON format"""
username = request.args.get("q")
rows = db.execute("SELECT * FROM users WHERE username = :username", username=username)
if len(username) < 1:
    return jsonify(False), 400
if len(rows) < 1:
    return jsonify(False), 400
else:
    return jsonify(True), 200


欢迎来到StackOverflow。正如你所知道的,这是一个你花了很长时间试图解决代码中的问题的网站,作为最后手段,你不得不寻求帮助。这不是代码编写服务。谢谢,但它仍然没有响应或显示任何内容。一旦我写入一个存在的用户名并响应,它就会自动搜索。请您提供返回的数据。编辑可能会收到错误,因为返回的json上不存在
data.preventDefault()
。另外,您应该向
$添加第三个参数。get
,因为它可能不知道它是json值。错误的数据。。。您可以在浏览器的“网络”选项卡中找到数据<代码>F12->网络
@app.route("/check", methods=["GET"])
def check(username):
    """Return true if username available, else false, in JSON format"""
username = request.args.get("q")
rows = db.execute("SELECT * FROM users WHERE username = :username", username=username)
if len(username) < 1:
    return jsonify(False), 400
if len(rows) < 1:
    return jsonify(False), 400
else:
    return jsonify(True), 200
if (data == "FALSE")
if (data[1] == false)