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

为什么我的Vue 3表单验证脚本非空校验规则不生效?

问题原因

你代码的核心问题是在formValidation方法中调用非空校验逻辑时,没有执行isNotEmpty方法,仅引用了方法本身。JS中方法作为对象的属性值本身属于真值,所以!this.isNotEmpty的结果永远为false,永远不会触发空字段的错误提示。

修正方案

只需要给isNotEmpty加上方法执行的括号即可:

formValidation() {
  this.formErrors = [];

  // 修正为执行isNotEmpty方法
  if (!this.isNotEmpty()) {
    this.formErrors.push("There are empty filelds");
  }

  if (!this.isEmail(this.formData.email)) {
    this.formErrors.push("The email is invalid");
  }

  console.log(this.formErrors);
}
额外隐藏问题

你代码中还有一处会触发报错的冗余逻辑:watch选项里的users监听回调中执行了this.users(),但users是你在data中定义的数组不是方法,这行代码会在你修改用户列表时抛出错误,建议直接删除这个没用的watch逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:54:02