输入框字母自动转换大写

相信做开发的同学除了头发略微稀少外每天还会遇到许多形形色色的bug和问题,同样作为一名坑中IT屌丝男的我,最近也是在开发中遇到一个挺有意思的需求,“将输入框中的字母自动转换成大写,但是可以输入文字”,我也是试了好几种方法,最后觉得这三种方法比较靠谱,大家如果遇到类似的问题可以直接c+v,放心冲。

第一种:οnkeyup=“this.value=this.value.toUpperCase()”

可以实现,但是输入文字会有干扰,比较有局限性,适合纯字母输入。

<el-input onkeyup="this.value=this.value.toUpperCase()" v-model="form.hphm" placeholder="请输入号牌号码"></el-input>

在这里插入图片描述

第二种:text-transform: uppercase;

只需要给输入框加上一个class,把属性加上即可,局限性非常小,推荐使用。

<div class="toUpperCase">
    <el-input v-model="form.hphm" placeholder="请输入号牌号码"></el-input>
</div>
.toUpperCase ::v-deep .el-input__inner {
    
    
        text-transform: uppercase !important
    }

可以看到我并没有直接把class绑定在el-input上,而是在外面又套了一层div,这又是为什么呢,其实是因为我当前的页面不止这一个el-input,而且我是用的element中的el-input,所以一旦改变肯定会造成一个变所有的el-input都会变,但是在外层套上一个div就不会出现前面的情况了,配合::v-deep和!important来改变el-input的原有样式就可以实现啦。
在这里插入图片描述
其实text-transform还有其他几个属性,capitalize,lowercase,inherit,大家如果感兴趣的话也可以自己去看一下。

第三种:toUpperCase()方法

运用计算属性和toUpperCase()方法可以完美实现,最佳方案。

<!-- //v-model="codeval" 绑定的codeval要和computed中的codeval一致 -->
<el-input maxlength="7" v-model="codeval" placeholder="请输入号牌号码"></el-input>
computed: {
    
    
    codeval: {
    
    
        get: function () {
    
    
            return this.form.hphm;//绑定的model数据
        },
        set: function (val) {
    
    
            this.form.hphm = val.toUpperCase();//toUpperCase()方法用于将小写字符转换为大写
        }
    }
},

在这里插入图片描述

Supongo que te gusta

Origin blog.csdn.net/Shids_/article/details/120907278
Recomendado
Clasificación