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

如何使用Javascript阻止填写已占用邮箱的表单自动提交

你代码的问题主要有以下几点:

  • 函数名不匹配:你定义的校验函数名为check,但表单onsubmit事件里调用的是不存在的check_usercheck1()
  • 语法错误:alert行末尾多了一个多余的右括号,会直接导致JS运行报错
  • 输入框结构错误:input邮箱输入框放在了form标签外部,提交表单时无法通过form对象获取到输入值
  • 参数传递缺失:check函数要求传入form对象,但调用时没有传递对应参数

修正后可直接运行的代码

JS代码

// 校验邮箱是否被占用
function checkUsedEmail(form) {
    // 已被占用的邮箱列表,后续新增可直接在数组里加
    const usedEmails = ["sttf@gmail.com", "dandy@gmail.com"]
    const inputEmail = form.email.value.trim()
    if (usedEmails.includes(inputEmail)) {
        alert("你填写的邮箱地址已被其他用户使用")
        return false
    }
    return true
}

HTML代码

<form action='' method='POST' onsubmit="return checkUsedEmail(this)">
  <input name='email' id="usercheck1" placeholder='请输入邮箱' required type='email'/>
  <!-- 提交按钮可根据你的需求调整 -->
  <button type="submit">提交表单</button>
</form>

注意:该方案仅适用于前端临时校验,正式使用时一定要在服务端再加一层重复校验,避免用户绕过前端规则直接提交数据


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:24:05