一基本使用
校验:输入不是数据 清空并提示(最多9位,点击其他处进行校验)
<el-form-item label="展示序号:" :prop="EFormPropKeys.ORDER_NO">
<el-input
v-model="createForm[EFormPropKeys.ORDER_NO]"
placeholder="请输入展示序号"
class="w300"
@blur="handleNumBlur(createForm, EFormPropKeys.ORDER_NO)"
maxlength="9"
show-word-limit
clearable
/>
</el-form-item>
const handleNumBlur = (item, key) => {
if (!validatePositiveInteger(item[key])) {
ElMessage.warning("请输入正确的数字")
item[key] = ""
}
}
/**
* 校验是否为正整数
*/
function validatePositiveInteger(input) {
console.log(input, "input-----")
const regex = /^\d+$/
return regex.test(input)
}
二 vue3项目中el-input内搜索的icon图标绑定点击事件
vue3项目中el-input内搜索的icon图标绑定点击事件-CSDN博客
三 修改el-input 边框的颜色
<div
style="display: flex; align-items: center"
:class="{ 'is-invalid': isInputInvalid }"
>
<el-input
v-if="item.editHeader"
v-model="item.name"
@blur="handleBlurHeader(item)"
size="small"
placeholder="请输入内容"
/>
</div>
:deep(.is-invalid .el-input) {
--el-input-border-color: red;
--el-input-hover-border-color: red;
--el-input-focus-border-color: red;
}
3.1不使用el-form单独给el-input设置表单校验,自定义input表单校验
有时候我们需求只需要对一个input进行校验,el-form的校验需要定义各种规则,然后prop,所以干脆放弃el-form的校验,直接手搓一个校验即可.同样的思路应该也可以用于普通的input, 见下方代码
<template>
<div>
<el-input
v-model="inputValue"
:class="{ 'is-invalid': isInputInvalid }"
placeholder="请输入内容"
@blur="validateInput"
></el-input>
<span v-if="isInputInvalid" class="error-message">{{ inputErrorMessage }}</span>
<el-button type="primary" @click="submitForm">提交</el-button>
</div>
</template>
<script>
export default {
data() {
return {
inputValue: '',
isInputInvalid: false,
inputErrorMessage: ''
};
},
methods: {
validateInput() {
// 根据自定义的校验规则进行校验
if (this.inputValue === '') {
this.isInputInvalid = true;
this.inputErrorMessage = '内容不能为空';
} else if (this.inputValue.length < 5 || this.inputValue.length > 10) {
this.isInputInvalid = true;
this.inputErrorMessage = '内容长度应在 5 到 10 之间';
} else {
this.isInputInvalid = false;
this.inputErrorMessage = '';
}
},
submitForm() {
// 在提交表单时再次触发校验,确保校验结果
this.validateInput();
// 如果校验通过,则进行后续的表单提交操作
if (!this.isInputInvalid) {
// 表单提交操作
}
},
closeDialog() {
// 关闭dialog
// 重置表单数据和校验历史
this.appname = '';
this.isInputInvalid = false;
this.inputErrorMessage = '';
},
}
};
</script>
<style>
.error-message {
color: red;
}
//vue3
:deep(.is-invalid .el-input) {
--el-input-border-color: red;
--el-input-hover-border-color: red;
--el-input-focus-border-color: red;
}
</style>