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

使用JavaScript校验HTML表单时非空用户名无法提交的问题求解

问题原因

  • 你的代码中e.preventDefault()被放在了判断逻辑的外部,只要触发表单提交事件,就会无条件阻止表单的默认提交行为,因此就算用户名不为空,表单也无法正常提交。

修复方案

把e.preventDefault()移动到用户名为空的判断分支内部即可,仅在校验不通过的时候阻止提交,校验通过后就会触发原生的表单提交逻辑。

修正后的JS代码

let userName = document.getElementById('uname');
let form = document.querySelector('#myForm');
form.addEventListener('submit',function(e){
    if(userName.value === ''){
        e.preventDefault(); // 仅校验失败时阻止提交
        alert('user name is required');
    }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:18:02