当前位置: 首页 > news >正文

vue3 el-input el-select 非空校验

在Vue 3中使用el-inputel-select组件进行非空判断,并在非div标签上显示红色边框,可以通过以下几种方法实现:

1. 使用表单验证

使用Element Plus的表单验证功能,可以很方便地实现非空判断。你可以将el-inputel-select放入el-form-item中,并使用rules属性来定义验证规则。

<template><el-form :model="form" :rules="rules" ref="formRef"><el-form-item label="用户名" prop="username"><el-input v-model="form.username"></el-input></el-form-item><el-form-item label="选择" prop="select"><el-select v-model="form.select" placeholder="请选择"><el-option label="选项1" value="1"></el-option><el-option label="选项2" value="2"></el-option></el-select></el-form-item><el-button type="primary" @click="submitForm">提交</el-button></el-form>
</template><script setup>
import { ref } from 'vue';
import { ElForm, ElInput, ElSelect, ElOption, ElButton } from 'element-plus';const form = ref({username: '',select: ''
});const rules = {username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],select: [{ required: true, message: '请选择', trigger: 'change' }]
};const formRef = ref(null);const submitForm = () => {formRef.value.validate((valid) => {if (valid) {alert('提交成功!');} else {console.log('表单验证失败');return false;}});
};
</script>

2. 自定义CSS样式进行非空判断显示红色边框

如果你想要在非空验证失败时,直接在输入框或选择框上显示红色边框,可以通过动态绑定class来实现。例如:

<template><div><el-input v-model="username" :class="{ 'is-error': !username }"></el-input><el-select v-model="selected" placeholder="请选择" :class="{ 'is-error': !selected }"><el-option label="选项1" value="1"></el-option><el-option label="选项2" value="2"></el-option></el-select></div>
</template><script setup>
import { ref } from 'vue';
import { ElInput, ElSelect, ElOption } from 'element-plus';const username = ref('');
const selected = ref('');
</script><style>
.is-error .el-input__inner, .is-error .el-select .el-input__inner {border-color: red; /* 设置红色边框 */
}
</style>

3. 使用CSS伪类进行动态样式控制(更灵活)

为了使样式更加灵活,可以结合JavaScript来动态添加或移除类:

<template><div><el-input v-model="username" :class="{ 'is-error': !username }" @blur="validateInput"></el-input><el-select v-model="selected" placeholder="请选择" :class="{ 'is-error': !selected }" @change="validateSelect"></el-select></div>
</template><script setup>
import { ref } from 'vue';
import { ElInput, ElSelect, ElOption } from 'element-plus';
import { nextTick } from 'vue'; // 用于等待DOM更新完成后再添加类名或移除类名。const username = ref('');
const selected = ref('');
const validateInput = () => { nextTick(() => { if (!username.value) document.querySelector('.is-error .el-input__inner').classList.add('red-border'); }); }; // 添加红色
http://www.lryc.cn/news/580369.html

相关文章:

  • 每日学习问题记录
  • DVWA靶场通关笔记-验证码绕过reCAPTCHA(High级别)
  • vue中添加原生右键菜单
  • 【零基础学AI】第24讲:卷积神经网络(CNN)架构设计
  • 【无标题】Go语言中的反射机制 — 元编程技巧与注意事项
  • 3dmax物理材质转换标准材质,物理材质转VR材质,VR材质转标准材质3dmax物理材质转标准材质插件
  • 电脑休眠设置
  • c++ python 共享内存
  • 后端树形结构
  • STM32F103RCTx的PWM输出控制电机
  • js游戏简单修改
  • React Native 开发环境搭建--mac--android--奔溃的一天
  • Hinge×亚矩云手机:以“深度连接”为名,重构云端社交的“真实感”
  • CSS02:四种CSS导入方式
  • pyspark大规模数据加解密优化实践
  • Python小工具之PDF合并
  • 数据结构:多维数组在内存中的映射(Address Mapping of Multi-dimensional Arrays)
  • IDEA中application.yml配置文件不自动提示解决办法
  • 如何在IntelliJ IDEA中设置数据库连接全局共享
  • 从“电话催维修“到“手机看进度“——售后服务系统开发如何重构客户体验
  • CppCon 2018 学习:Surprises In Object Lifetime
  • Kotlin 协程:Channel 与 Flow 深度对比及 Channel 使用指南
  • 【ES6】Latex总结笔记生成器(网页版)
  • Jenkins Pipeline(二)
  • 【Elasticsearch】深度分页及其替代方案
  • 【openp2p】 学习2:源码阅读P2PNetwork和P2PTunnel
  • 【STM32实践篇】:GPIO 详解
  • 网络资源模板--基于Android Studio 实现的极简天气App
  • Excel 数据透视表不够用时,如何处理来自多个数据源的数据?
  • 动手实践OpenHands系列学习笔记1:Docker基础与OpenHands容器结构