Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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 如何创建一个if语句来查找获取请求?_Javascript_Python_Forms_Flask_Fetch - Fatal编程技术网

Javascript 如何创建一个if语句来查找获取请求?

Javascript 如何创建一个if语句来查找获取请求?,javascript,python,forms,flask,fetch,Javascript,Python,Forms,Flask,Fetch,我正在用烧瓶取回() 我有一张表格 当文本输入“a”更改/输入文本时。 提取请求被发送到“/验证表单” 按下表单末尾的提交按钮时。 它也将表单提交到“/验证表单” 我可以创建一个If-else语句,该语句将能够区分是发送提取请求还是将表单提交给“/验证表单” 我尝试了下面的方法,但是“FETCH”一直被打印到终端上 @app.route("/validate-form", methods = ["POST"]) def register(): if request.method == "

我正在用烧瓶取回()

我有一张表格 当文本输入“a”更改/输入文本时。 提取请求被发送到“/验证表单”

按下表单末尾的提交按钮时。 它也将表单提交到“/验证表单”

我可以创建一个If-else语句,该语句将能够区分是发送提取请求还是将表单提交给“/验证表单”

我尝试了下面的方法,但是“FETCH”一直被打印到终端上

@app.route("/validate-form", methods = ["POST"])
def register():
    if request.method == "POST":
        if "username" in request.form and "password" in request.form:
           print("submitted")
           return "Thanks"
        else:
            print("FETCH")
            return "Thanks"

如果我很清楚您想要什么,并且为了区分这一点,您可以在通过“POST”发送数据之前在javascript中测试事件类型,如下所示:

   if(window.event.type === 'submit'){
        // You are sending data
    } else {
       // You are validating data
    }

它适合我,正确打印“提交”

我可以提出的解决方案是使用一些隐藏的输入,只有在单击提交按钮时才会发送这些输入

<input type="hidden" name="isFormSubmitted" value="true" />
<h1>Hello Flask</h1>
<form id="myForm" action="/validate-form" method="POST">
    <label>Password</label>
    <input name="password" type="password" />
    <label>Username</label>
    <input name="username" type="text" />
    <input type="hidden" name="isFormSubmitted" value="true" />
    <label>Validate when I am changed</label>
    <input name="validate" type="text" id="validate"/>
    <input type="submit" value="Send" />
</form>


<script>
window.onload = function() {
  const myForm = document.getElementById("myForm");
  const validateInput = document.getElementById("validate");
  //input or change event handler
  validate.addEventListener("input", function(e) {
    const data = new FormData(myForm);
    data.set("isFormSubmitted", "false");
    fetch('/validate-form', {
      method: 'POST',
      body: data,
    }).then((response) => {
        console.log(response);
    });
  })
}
</script>
@app.route("/validate-form", methods = ["POST"])
def register():
    if request.method == "POST":
        print(request.form)
        if request.form["isFormSubmitted"] == "true":
           print("SUBMITTED")
           return "Thanks submitted"
        else:
            print("FETCH")
            return "Thanks fetch"