下面是JS代码:

let form = document.querySelector("form");

form.addEventListener("submit", (e) => {
      const map_not_uploaded = document.getElementById("map").value == "";
      const bugs_not_uploaded = (document.getElementById("bug1").value == "") || (document.getElementById("bug2").value == "");

      if (map_not_uploaded) {
            alert("Must upload map file");
            e.preventDefault();
      }
      else if (bugs_not_uploaded) {
            alert("Must upload both bug files");
            e.preventDefault();
      }
      else {
            window.location.href = "new.html";
      }
});

提交表单后,它会正确判断是否输入了文件,即显示alert .然而,在正确输入之后,它不会重定向到new.html.

推荐答案

只需将e.preventDefault()放在函数的顶部即可.

form.addEventListener("submit", (e) => {
  e.preventDefault();
  const map_not_uploaded = document.getElementById("map").value == "";
  const bugs_not_uploaded = (document.getElementById("bug1").value == "") || (document.getElementById("bug2").value == "");

  if (map_not_uploaded) {
        alert("Must upload map file");
  }
  else if (bugs_not_uploaded) {
        alert("Must upload both bug files");
  }
  else {
        window.location.href = "new.html";
  }
  });

Javascript相关问答推荐

如何使用CSS和JavaScript创建粘性、凝聚力的形状到形状(容器)变形?

Klaro与Angular的集成

如何避免移动设备中出现虚假调整大小事件?

yarn安装一个本地npm包,以便本地包使用main项目的node_modules(ckeditor-duplicated-modules错误)

Javascript,部分重排序数组

在Angular中将样式应用于innerHTML

拖放仅通过 Select 上传

Snowflake JavaScript存储过程返回成功,尽管预期失败

我可以从React中的出口从主布局调用一个处理程序函数吗?

如何使用JavaScript将文本插入空div

在D3条形图中对具有相同X值的多条记录进行分组

处理TypeScrip Vue组件未初始化的react 对象

本地损坏的Java脚本

react 路由DOM有条件地呈现元素

P5play SecurityError:无法从';窗口';读取命名属性';Add';:阻止具有源的帧访问跨源帧

需要RTK-在ReactJS中查询多个组件的Mutations 数据

重新渲染过多(&Q).REACT限制渲染次数以防止无限循环.使用REACT下拉菜单时

需要刷新以查看Mern堆栈应用程序中的更改

更改管线时不渲染组件的react

MAT-TREE更多文本边框对齐问题