JavaScript提交表单仅当;window.close();不在场

JavaScript提交表单仅当;window.close();不在场,javascript,django,Javascript,Django,更新:在Edge中工作良好,而不是在Chrome中工作 我有一张id为“myform”的表格 现在奇怪的事情是:当省略了行window.close()时,表单就可以提交了。当行出现时,窗口实际上关闭,但表单根本没有提交,没有任何错误或问题 我已经尝试过的: 我检查了所有的名字和ID,没有使用保留的关键字 我尝试用默认的HTML提交按钮提交,它工作正常 更新: 我使用console.log和window.alert以及各种超时方法进行了测试,所有的事情都发生在脚本中,只是忽略了提交表单的行为 通过

更新:在Edge中工作良好,而不是在Chrome中工作

我有一张id为“myform”的表格

现在奇怪的事情是:当省略了行
window.close()
时,表单就可以提交了。当行出现时,窗口实际上关闭,但表单根本没有提交,没有任何错误或问题

我已经尝试过的:

  • 我检查了所有的名字和ID,没有使用保留的关键字
  • 我尝试用默认的HTML提交按钮提交,它工作正常
  • 更新:

  • 我使用console.log和window.alert以及各种超时方法进行了测试,所有的事情都发生在脚本中,只是忽略了提交表单的行为

  • 通过清除浏览器缓存来解决此问题。

    当窗口关闭时,任何提交都将被取消。您应该通过ajax调用实现这一点,然后您将能够提交/关闭窗口。如果您在表单提交解决之前关闭表单提交到的窗口,那么它将被取消。如果在此之前及时提交,则窗口关闭,不会向用户反馈提交是否成功。不管怎样,这都是一种糟糕的用户体验。当你关闭“所属”的窗口时,浏览器往往会取消任何正在运行的请求。(事实上,我不知道这是怎么一个惊喜。如果我让你上车,指示你开车到国家的另一边……然后我马上在工业新闻中把车撞碎,那么我也不指望你会到达国家的另一边……)一个附带问题:哪种编程语言包含语法
    {%…%}
    ?不,这不是服务器的事情,它在Edge中工作。我试过暂停,但没有帮助。在脚本中使用window.close()时,甚至在启动时都没有提交操作。
    <form method="POST" id="myform">{% csrf_token %}
            <label for="target_bla">Bla bla</label>
            <select id="target_bla" name="target_bla">
                <option>1</option>
                <option>2</option>
                <option>3</option>
            </select>
            
        <div class="buttons">
            {% if condition %}
            <input name="btnSubmit" value="Bla bla" onclick="subAndClose()" />
            {% else %}
            <input name="btnSubmit" type="submit" value="Other bla" />
            {% endif %}
        </div>
    </form>
    
        function subAndClose() {
            document.forms["myform"].submit();
            window.close()
        }