项目中引入element的input框组件,触发事件必须要加上.native
<el-input placeholder="请输入" type="textarea" v-model="valueText" @keyup.native="keyUp(valueText,$event)" @keydown.native="keyDown($event)" @input="input"></el-input>
复制代码
keyDown(event:any){//ctrl复制粘贴事件(true|false)this.isCtrl = event.ctrlKeyconsole.log('keyDown:',this.isCtrl)
}
input(value:any){let newStr='';this.valueCtrl = ''let str = value.substring(value.length-1,value.length);this.valueyArr.push(str);for (let i = 0; i < this.valueyArr.length; i++) {newStr+= this.valueyArr[i]}this.valueShow = newStr // 输入的明文if(value.length<this.appPrivateKeyShow.length){//退格删除this.appPrivateKeyArr = this.appPrivateKeyArr.slice(0,value.length)this.appPrivateKeyShow = this.appPrivateKeyShow.substring(0,value.length)}console.log('input:',this.valueShow)
}
keyUp(value:any,event:any){if(this.isCtrl&&!this.valueCtrl){this.valueCtrl = value // 粘贴的明文this.valueShow = ''}this.valueText = value.replace(/./g, '.'); // 替换成密文点点console.log('keyUp:',this.valueCtrl)
}
复制代码
纯手动输入: