Javascript 表单输入don';无法在键入(@input)时进行验证,只有@blur起作用

Javascript 表单输入don';无法在键入(@input)时进行验证,只有@blur起作用,javascript,vue.js,vuetify.js,vuelidate,Javascript,Vue.js,Vuetify.js,Vuelidate,我正在使用带有输入数据验证(Vuelidate)的组合框: 从“vuelidate”导入{validationMixin} 从“vuelidate/lib/validators”导入{required,maxLength} 导出默认值{ mixin:[验证mixin], 验证:{ 姓:{ 必修的, maxLength:maxLength(30), validSurname(姓氏){ 返回( /^[a-zA-Z]-?*.+$/.测试(姓氏) ) } }, 姓名:'姓', 数据(){ 返回{ 姓:

我正在使用带有输入数据验证(Vuelidate)的组合框:


从“vuelidate”导入{validationMixin}
从“vuelidate/lib/validators”导入{required,maxLength}
导出默认值{
mixin:[验证mixin],
验证:{
姓:{
必修的,
maxLength:maxLength(30),
validSurname(姓氏){
返回(
/^[a-zA-Z]-?*.+$/.测试(姓氏)
)
}
},
姓名:'姓',
数据(){
返回{
姓:'',
[...]
},
方法:{
[...]
},
计算:{
姓氏错误(){
常量错误=[]
如果(!this.$v.namite.$dirty)返回错误
!this.$v.namite.validSurname&&errors.push('格式必须类似于:Smith或Smith-Wesson')
!this.$v.namese.maxLength&&errors.push('姓氏长度不得超过30个字符')
!this.$v.namese.required&&errors.push('需要姓氏')
返回错误
}
}
组件的版本:

“依赖项”:{
“@vue/compiler sfc”:“^3.0.0”,
“核心js”:“^3.6.5”,
“vue”:“^2.6.11”,
“vuelidate”:“^0.7.5”,
“vuetify”:“^2.2.11”
},
我想我所做的一切都和中的一样,但是我的表单得到的验证与文档中的有点不同:我可以超过30个字符的限制,而不会在键入时得到通知。我只在输入失去焦点时才知道它。正则表达式验证的相同情况是:任何值都会被接受,而不会收到错误通知。如果值无效,我在离开输入字段时收到通知


从文档复制示例时是否遗漏了一些内容,或者
@input
侦听器工作不正确?或者是
v-combobox
无法通过这种方式进行验证?

v-combobox
仅当从下拉列表中选择其有效值之一时才会发出
更改
输入
事件。文本组合框中的输入实际上是搜索输入,用于查找有效值;该输入绑定到
v-combobox
search input
属性

update:search input
列为搜索输入更改时激发的事件,因此您可以使用该事件绑定验证处理程序:


Hmm,它现在的工作原理有点不同,即错误消息从一开始就存在,但当1.选择正确的条目(错误消失)时,它们不会再次出现;2.正确的条目会以一种不正确的方式被编辑。无论如何,感谢您指出这一点。