测试提出需求,文本框限制在50个字的时候,前端使用maxlength限制最大字数。当用户从外部复制粘贴100个字的时候,会直接将100个字截取为50个字,但是用户完全不知道自己的内容被截取掉了,所以此时经过商量决定,当用户手动输入的时候,限制50个字,判断用户从外部复制粘贴的时候,不截取,并且给出超长提示。(基于el-form中的el-input进行修改)
具体做法:
1、去element-ui官网获取el-input的源代码文件。
2、将maxlength替换成自己定义的属性,我这里定义成立maximum
3、在props内接受外部传过来的maximum
4、在@input事件中,监听手动输入,并做截取工作
5、将该文件中的maxlength全局替换成maximum,涉及到show-word-limit等属性。
6、接下来就是在父组件中,,将自定义的input文件作为全局组件引入,将原来定义 的maxlength全部替换成maximum,并且需要在el-form中定义rules,限制最大字数。
以上就完成了对el-input的优化,其实就是将手动输入时候截取掉,达到和maxlength一样的效果,复制粘贴的时候不做处理,失去焦点触发el-form的表单校验。