当前位置: 首页 > 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.dtcms.com/a/267730.html

相关文章:

  • 大数据学习2:HIve
  • Linux进程管理:从基础到实战
  • Qt Ribbon效果界面
  • QT6 源(154)模型视图架构里的列表视图 QListView:先学习属性部分,
  • 认识Redis
  • Chat Model API
  • 60天python训练营打卡day52
  • 运算方法和运算器补充
  • 如何录制带备注的演示文稿(LaTex Beamer + Pympress)
  • Codeforces Round 919 (Div. 2) D. Array Repetition(分块,1900)
  • 【深圳大学机器学习】实验一:PCA算法
  • 【ACL系列论文写作指北15-如何进行reveiw】-公平、公正、公开
  • 大数据学习1:Hadoop单机版环境搭建
  • Redis 哨兵模式部署--docker版本
  • C++面试-auto,auto,auto 的区别
  • 【ESP32】2.多任务处理
  • 相机位姿估计
  • 使用接口测试工具类Postman和浏览器的差异
  • C++ 语言特性31 - 协程介绍(2)
  • 用 Turbo Vision 2 为 Qt 6 控制台应用创建 TUI 字符 MainFrame
  • Redis性能优化
  • 五、Python新特性指定类型用法
  • AI大模型(六)Langchain核心模块与实战(一)
  • 使用LVM和扩展文件系统增加root分区存储容量
  • 信号和槽(4)
  • 3dmax物理材质转换标准材质,物理材质转VR材质,VR材质转标准材质3dmax物理材质转标准材质插件
  • 98.验证二叉搜索树
  • python实现简单的地图绘制与标记20250705
  • 【每天一个知识点】子空间聚类(Subspace Clustering)
  • 零基础保姆级本地化部署文心大模型4.5开源系列