You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用纯JavaScript在表单程序化提交前自动校验所有required必填项

原生JavaScript实现表单必填项自动校验方案

完全可以通过原生JavaScript实现需求,HTML5表单API已经内置了对应的校验能力,无需手动逐个判断输入项,也不需要引入第三方依赖。

核心实现原理

原生HTMLFormElement提供了内置的checkValidity()方法,调用时会自动遍历表单内所有输入元素,校验包括required必填规则、type格式规则(如邮箱、数字)、pattern自定义正则、min/max长度/数值限制等所有HTML5表单校验规则,全部校验通过返回true,否则返回false,同时会触发浏览器默认的校验提示气泡。

适配现有代码的修改方案

直接替换你的checkForm函数逻辑即可:

function checkForm(e) {
   e.preventDefault();
   // 其他业务逻辑
   const myForm = document.getElementById('myForm');
   // 自动校验所有必填项及其他原生校验规则
   if(myForm.checkValidity()) {
     myForm.submit();
   }
}

实现你期望的valid()调用方式

如果要完全匹配你想要的form.valid()调用风格,可以给表单原型扩展对应方法:

// 全局扩展表单的valid方法,一次定义所有表单都可以使用
HTMLFormElement.prototype.valid = function() {
  return this.checkValidity();
}

// 后续就可以直接用你想要的写法调用
function checkForm(e) {
   e.preventDefault();
   // 其他业务逻辑
   if(document.getElementById('myForm').valid()) {
     document.getElementById('myForm').submit();
   }
}

补充说明

如果不需要浏览器自带的错误提示气泡,想要自定义错误展示逻辑,可以监听表单内输入元素的invalid事件,阻止默认行为后自己处理错误提示即可。

内容的提问来源于stack exchange,提问作者Daniel Campos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:06:03