el-input设置后缀显示单位并阻止滚轮微调的解决方法
项目中收集form表单信息时,有时会需要在el-input后面显示单位,效果如图:

当然,我们可以直接在输入框后面加上单位,但直接给输入框上加单位不管是视图上还是用户体验上看起来都要好一点
element-plus / element-ui给我们提供了对应插槽

图中效果显然是尾部内容,因此只需要使用suffix插槽即可实现该效果
<el-input v-model='data'> <template #suffix>元</template> </el-input>
这里我要提一个额外的内容,由于我这里收集的是数字,因此我给el-input设置了type=‘number’,但总是不知道什么情况,有时输入框中的数值比我输入的有细微出入
其实,后来无意间发现是输入框的滚轮滚动事件,一般给el-input添加了type='number’后,输入框后面会出现上下两个箭头可以对数值进行微调。
如果鼠标光标在输入框内并聚焦时,滚动滚轮也会微调数值,因此我就出现了这个问题,输入完数值,此时鼠标还聚焦在输入框内,滚动滚轮(因为我填写内容较多这个页面有滚动条需要滚动到上方/下方去填写别的内容),此时我输入框中的数值就会因为我滚动滚轮进行了微调,出现数值与输入的数值不一致
解决方法,就是阻止el-input滚轮事件的默认行为
<template>
<el-input v-model='data' @wheel='preventScroll'>
<template #suffix>元</template>
</el-input>
</template>
<script>
export default {
data(){
return {
data
}
},
methods:{
preventScroll(e){
e.preventDefault()
}
}
}
</script>这里还有一点是我不需要上下箭头的微调,所以用css样式将上下箭头隐藏掉,给el-input设置类名no-controls,代码如下:
:deep.no-controls input::-webkit-inner-spin-button,
:deep.no-controls input::-webkit-outer-spin-button{
-webkit-appearance: none !important;
}
:deep.no-controls input[type=“number”]{
-moz-appearance: textfield;
}
到此这篇关于el-input设置后缀显示单位并阻止滚轮微调的解决方法的文章就介绍到这了,更多相关el-input设置后缀显示单位内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
ElementUI时间选择器限制选择范围disabledData的使用
本文主要介绍了ElementUI时间选择器限制选择范围disabledData的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-06-06
vue-cli单页面预渲染seo-prerender-spa-plugin操作
这篇文章主要介绍了vue-cli单页面预渲染seo-prerender-spa-plugin操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-08-08
Vue 图片监听鼠标滑轮滚动实现图片缩小放大功能(实现思路)
其实想要实现功能很简单,就是在一张图片上监听鼠标滑轮滚动的事件,然后根据上滚还是下滚实现图片的缩放,这篇文章主要介绍了Vue 实现图片监听鼠标滑轮滚动实现图片缩小放大功能,需要的朋友可以参考下2023-03-03
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
这篇文章主要介绍了Vue 实现创建全局组件,并且使用Vue.use() 载入方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-08-08


最新评论