vee 验证仅适用于第一个字段?
vee validate works for the first field only?
我创建了两个模式(loginModal 和 registerModal),用户可以在它们之间动态切换。
"VeeValidate" 插件有问题,如果我向错误包中添加内容,它只会验证第一个字段。
我在这里为这个问题创建了一个演示:
https://2o2z51km00.codesandbox.io/
资源:
https://codesandbox.io/s/2o2z51km00
- 打开 loginModal(默认打开)。
- 提交默认登录信息(您将看到“您输入的内容无效
凭据”消息)。
- 在看到该消息后切换 注册模式。
- 提交注册模式(输入为空)
如您所见,它仅突出显示第一个字段(全名字段)而忽略其他字段。
为什么会这样?
花了很多时间,并没有意识到从 2.1 到 2.2.3 的最新版本的最新变化。
问题是多个模式尝试使用相同的名称。这可以通过使用范围来解决,因为我已经在你的项目的分支中实现了。
https://codesandbox.io/s/vv0jqprpj0
所以通过添加输入:
data-vv-scope="SCOPE"
并使用它来验证字段
this.$validator.validate('SCOPE.*')
附带说明一下,您在 RegisterModal 上使用 v-show
来显示错误,在 LoginModal 上使用 v-if
- 正确的是使用 v-if
我创建了两个模式(loginModal 和 registerModal),用户可以在它们之间动态切换。
"VeeValidate" 插件有问题,如果我向错误包中添加内容,它只会验证第一个字段。
我在这里为这个问题创建了一个演示: https://2o2z51km00.codesandbox.io/ 资源: https://codesandbox.io/s/2o2z51km00
- 打开 loginModal(默认打开)。
- 提交默认登录信息(您将看到“您输入的内容无效 凭据”消息)。
- 在看到该消息后切换 注册模式。
- 提交注册模式(输入为空)
如您所见,它仅突出显示第一个字段(全名字段)而忽略其他字段。
为什么会这样?
花了很多时间,并没有意识到从 2.1 到 2.2.3 的最新版本的最新变化。
问题是多个模式尝试使用相同的名称。这可以通过使用范围来解决,因为我已经在你的项目的分支中实现了。
https://codesandbox.io/s/vv0jqprpj0
所以通过添加输入:
data-vv-scope="SCOPE"
并使用它来验证字段
this.$validator.validate('SCOPE.*')
附带说明一下,您在 RegisterModal 上使用 v-show
来显示错误,在 LoginModal 上使用 v-if
- 正确的是使用 v-if