el-input使用oninput做正则校验之后,v-model不能赋值

需求

一个输入框,只能输入数字,必填项(输入除数字之外的任何东西,都不会出现在输入框里)

操作步骤:

1.英文输入法按出字母,无法出现在输入框内,此步骤正常
2.失去焦点后,提示此项为必填,此步骤正常
3.输入数字之后提示消失,此步骤正常
4.中文输入法按出词语,无法出现在输入框内,此步骤正常
5.失去焦点后,提示此项为必填,此步骤正常
6.输入数字之后提示不消失,v-model显示为空字符串

原因

在输入中文输入法触发了oninput之后,v-model绑定的值会被赋值为空字符串,这时候再输入数字,依然会被赋值为空字符串

解决办法:

在blur事件中手动赋值

 <el-form-item label="失败重试次数:" prop="executorFailRetryCount">
      <el-input v-model="form.executorFailRetryCount"   oninput="value = value.replace(/\D/g, '')" 
       @blur="form.executorFailRetryCount=$event.target.value"/>
</el-form-item>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容