Javascript 如何检查是否已使用用户名?
我需要使用javascript和python中的flask检查注册表单中的用户名输入,但我不知道如何实现它 我必须在javascript部分和python代码中使用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"""
$.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)