input密码框输入后设置显示为星号或其他样式

时间:2023-03-09 02:52:01
input密码框输入后设置显示为星号或其他样式

预览效果

input密码框输入后设置显示为星号或其他样式

核心代码

<div class="text-input" :class="right?'textinput-right':''">
<span :style="right?{paddingRight:'5px'}:{paddingLeft:'5px'}" v-if="star">{{"*".repeat(text.length)}}</span>
<input
:type="type=='number'?'tel':'text'"
ref="inputText"
:style="[star?'':{paddingLeft:'5px'},right?{textAlign:'right'}:'']"
:class="['text',className]"
v-model="value"
@keyup="handelKeyup"
:placeholder="text?'':placeholder"
:maxlength="maxlength" />
</div>

  

watch: {
value(val) {
if(this.star && val){
if(/.*[\u4e00-\u9fa5]+.*$/.test(val)){
this.value = val.replace(/[\u4e00-\u9fa5]/gm,'')
return ;
}
this.text += val
if(this.star){
this.value = ''
}
}
}
},
methods: {
handelKeyup(e){
if(e.keyCode==8){
this.text=this.text.slice(0,this.text.length-1)
}
this.$emit("input",this.star? this.text : this.value)
}
}

  

源码地址:https://github.com/zuobaiquan/vue/tree/master/vueExercise/vue-component/src/components/myinput

预览地址: http://zuobaiquan.com/vue/vueExercise/vue-component/dist/index.html#/input