You need to enable JavaScript to run this app. 联系表单JS提交调用e.preventDefault()后 满足条件仍无控制台输出问题
优惠活动
大模型
产品
解决方案
定价
更多

联系表单JS提交调用e.preventDefault()后 满足条件仍无控制台输出问题

问题修正方案

核心错误1:事件绑定对象错误

  • 代码中通过document.querySelector(".mainform")选中的是包裹表单的外层<div>元素,而submit事件仅会在原生<form>元素上触发,因此提交按钮的回调函数完全没有执行,所有控制台输出逻辑都不会运行。
  • 修正方式:将表单选择器改为选中真实的<form>元素,可修改为:
    const form = document.querySelector(".mainform form");
    

核心错误2:校验函数传参错误

  • 调用checkpass(password)时,传入的是整个密码输入框的DOM对象,并非用户输入内容的长度。即便事件绑定修正完成,DOM对象与数字10做大小比较时会被转为NaN,永远无法匹配长度条件,只会输出Out。
  • 修正方式:调用校验函数时传入密码输入内容的实际长度:
    form.addEventListener('submit',function(e){
        e.preventDefault();
        checkpass(password.value.length);
    })
    

附加语法错误(当前未触发,后续调试会影响)

  • 编写的testfunc函数中console.log(type(emailid));存在语法错误,正确的类型检测关键字为typeof,修改为:
    console.log(typeof emailid);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 23:36:04