不能在 if、else 中使用 preventDefault()

问题描述

下面代码中的

$.get 返回一个名为 data 的 JSON 格式的布尔值。但是无论 data 的值是 false 还是 true preventDefault() 都会阻止提交表单。

$(document).ready(function() {
  $("#username").blur(function() {
    let username = document.getElementById("username").value;
    
    $.get("/check",{
      username_value: username
    },function(data) {
      alert(data);
      
      $("#submit").click(function(e) {
        if (data) {
          e.preventDefault();
        } else if (!data) {
          e.submit();
        }
      });
    });
  });
});

这是 /check 部分

@app.route("/check",methods=["GET"])
def check():
    """Return true if username available,else false,in JSON format"""
    get_username = request.args.get("username_value")

    users = db.execute("SELECT username FROM users")

    lenght = len(get_username)
    i = 0
    for user in users:
        if get_username == users[i]["username"] or not lenght > 1:
            return jsonify(True)
        i += 1

    return jsonify(False)

顺便说一句,我对编码业务很陌生。感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)