【发布时间】:2019-02-08 23:40:12
【问题描述】:
我一直在尝试使用警报来告诉用户给定的用户名已经注册,但没有显示警报消息。
因此,想法是在注册时将用户名发送到 python,在那里将检查用户名是否已经存在,如果存在,则代码将返回 jsonify(False)。然后在javascript中,如果返回是false,它应该显示一条警告消息。但是我的代码不起作用。
Python:
@app.route("/check", methods=["GET"])
def check():
"""Return true if username available, else false, in JSON format"""
username = request.args.get("username")
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)
HTML:
form action="/register" onsubmit="validateUsername()" method="post" id ="register"> div class="表单组"> 输入 autocomplete="off" autofocus class="form-control" name="username" placeholder="Username" type="text"> /div> div class="表单组"> 输入 class="form-control" name="password" placeholder="Password" type="password"> /div> div class="表单组"> 输入 class="form-control" name="confirmation" placeholder="Confirm Password" type="password"> /div> 按钮 class="btn btn-primary" id="submittion" type="submit">注册 /表格> 脚本> 让用户名 = document.querySelector('input[name=username]'); document.getElementById("submittion").addEventListener("click",function() { $.get('/check?username=' + username.value, function(data) { 如果(数据==假){ data.preventDefault(); alert("用户名不可用!"); } 别的 { 警报(“不工作”); } }); });</script>
提交数据时,应提醒用户该用户名已存在。
PS:我知道我留下了一些 < 以便正确显示我的 HTML 代码。
【问题讨论】:
-
您没有取消提交操作,所以它提交了页面。您也没有错误处理程序,因此无法知道 Ajax 调用是否失败
-
@epascarello 所以我需要为错误添加第四个参数?还取消提交我通过部分 data.preventDefault(); 停止它。不应该这样做吗?还是有更好的方法?
标签: javascript python flask alert cs50