在Vue+ElementUI 中做数据校验。当用户输入错误时清空input控件在特定情况下会出现原有清空数据会恢复。这是因为在Vue中数据是双向绑定的,只清空控件文字但form表单中还有数据。
附问题代码:
1 <el-form-item label="编号" prop="asgnum" > 2 <el-input v-model="form.asgnum" auto-complete="off" placeholder="请输入编号" maxLength="50" 3 onblur ="if(this.value.replace(/[\u4E00-\u9FA5]/g,'aa').length > this.maxLength){//超过就提示 4 alert('不得超过' + this.maxLength + '个字符(中文占2个字符)');this.value='';}"> 5 </el-input> 6 </el-form-item>
解决方法:只需要把Html对象监听改成 oninput 即可。
原因:onblur 为失焦监听会允许用户先录入数据在进行检查。
oninput为键盘输入监听先进行检查避免用户把错误的值录入到表单中。