vue3笔记(20-1)el-input踩坑
一个最基础的输入框居然藏着坑!记录数字输入没有报错bug,内容基于el-form校验 。
el-input事件记录。
输入框
文字输入框
1 |
|
数字输入框
- 数字输入框可以通过左右两边的+-实现基于步长的直接增减,方便操作;
- 数字输入框可以限制输入最大值和最小值,不在区间范围内的,会自动变成边界值;
- 数字输入框可以设置输入数值的精度,精度为0,只能输入整数;数字输入框有一点其他文档里都没有说明,就是有种骚操作(来自测试同学),直接粘贴了小数点.,在设置了精度为0的条件下,这个输入框居然没有报错!
1
2
3
4
5
6
7<el-input-number
v-model="testForm.bbb"
:precision="0"
:min="0"
:max="1000"
placeholder="请输入bbb"
/>
我原来以为再加一个正则判断就行,谁知还是绕过了验证…
在打印之后,发现小数点在输入框中的值是null,难怪正则验证不出来…
文字输入框输入数字
通过v-model.number和正则结合可以控制只输入整数
1 |
|
1 |
|
输入框事件
场景描述:
- 输入框聚焦时,展示下拉列表更多筛选选择
- 输入框 enter 或者点击右侧放大镜图标时,触发搜索事件
- 下拉列表高级搜索时,收起自身这里需要注意,点击时input输入框仍然属于focus状态,不会收起下拉列表,所以需要手动触发一个blur,若没有效果,可使用setTimeout。
1
2
3
4
5
6
7
8<el-input v-model="docFilter.search" placeholder="输入文档名称搜索" @focus="searchDocText" @keyup.enter.native="handleSearch" ref="inputRef">
<template #suffix>
<el-icon class="icon-search">
<Search @click="handleSearch"/>
</el-icon>
</template>
</el-input>
<div v-if="showSearch">这里是下拉列表筛选</div>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16const searchDocText = () => {
showSearch.value = true;
}
// enter之后搜索
const handleSearch = () => {
if (!docFilter.search) {
showSearch.value = false;
return;
}
data.page.page = 1
refreshDocList()
setTimeout(() => {
inputRef.value.blur()
showSearch.value = false;
}, 0)
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!