位置: IT常识 - 正文

el-input设置必填提示(单个&多个)(el-input_inner)

编辑:rootadmin
el-input设置必填提示(单个&多个)

推荐整理分享el-input设置必填提示(单个&多个)(el-input_inner),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:el-input默认值设置,el-input默认值设置,el–input加个默认赋值,el-input 必填,el–input加个默认赋值,el-input 必填,el–input加个默认赋值,el-input默认值设置,内容如对您有帮助,希望把文章链接给更多的朋友!

有两种:一种是多个el-input通过同一个el-form表单来限制,这种用得最多的地方就是添加和修改功能;另一种是每个el-input通过各自的el-form表单来限制,这种通常是用在动态添加多个输入框等功能上,话不多说,上才艺噻.

第一种(多个el-input同时限制):

举栗(element-ui官网的案例):

HTML代码:

<!-- 第一步对应 :model="ruleForm" ;第二步对应 :rules="rules" ;第三步对应 ref="ruleForm"--><el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <!-- 这里的 prop 也不可少,是与rules中定义的每个属性的校验规则是一一对应的--> <el-form-item label="活动名称" prop="name"> <el-input v-model="ruleForm.name"></el-input> </el-form-item> <el-form-item label="活动区域" prop="region"> <el-select v-model="ruleForm.region" placeholder="请选择活动区域"> <el-option label="区域一" value="shanghai"></el-option> <el-option label="区域二" value="beijing"></el-option> </el-select> </el-form-item> <el-form-item label="活动时间" required> <el-col :span="11"> <el-form-item prop="date1"> <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.date1" style="width: 100%;"></el-date-picker> </el-form-item> </el-col> <el-col class="line" :span="2">-</el-col> <el-col :span="11"> <el-form-item prop="date2"> <el-time-picker placeholder="选择时间" v-model="ruleForm.date2" style="width: 100%;"></el-time-picker> </el-form-item> </el-col> </el-form-item> <el-form-item label="即时配送" prop="delivery"> <el-switch v-model="ruleForm.delivery"></el-switch> </el-form-item> <el-form-item label="活动性质" prop="type"> <el-checkbox-group v-model="ruleForm.type"> <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox> <el-checkbox label="地推活动" name="type"></el-checkbox> <el-checkbox label="线下主题活动" name="type"></el-checkbox> <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox> </el-checkbox-group> </el-form-item> <el-form-item label="特殊资源" prop="resource"> <el-radio-group v-model="ruleForm.resource"> <el-radio label="线上品牌商赞助"></el-radio> <el-radio label="线下场地免费"></el-radio> </el-radio-group> </el-form-item> <el-form-item label="活动形式" prop="desc"> <el-input type="textarea" v-model="ruleForm.desc"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button> <el-button @click="resetForm('ruleForm')">重置</el-button> </el-form-item></el-form>

JavaScript代码:

<script> export default { data() { return { // 第一步,定义表单数据对象,并绑定 ruleForm: { name: '', region: '', date1: '', date2: '', delivery: false, type: [], resource: '', desc: '' }, // 第二步,定义表单数据校验对象,并绑定 rules: { name: [ { required: true, message: '请输入活动名称', trigger: 'blur' }, { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ], region: [ { required: true, message: '请选择活动区域', trigger: 'change' } ], date1: [ { type: 'date', required: true, message: '请选择日期', trigger: 'change' } ], date2: [ { type: 'date', required: true, message: '请选择时间', trigger: 'change' } ], type: [ { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' } ], resource: [ { required: true, message: '请选择活动资源', trigger: 'change' } ], desc: [ { required: true, message: '请填写活动形式', trigger: 'blur' } ] } }; }, methods: { submitForm(formName) { // 第三步,点击提交表单按钮的时候判断是否符合校验规则,符合才会往下运行,不符合会 // 按照你定义的校验规则提示警告 this.$refs[formName].validate((valid) => { if (valid) { alert('submit!'); } else { console.log('error submit!!'); return false; } }); }, resetForm(formName) { this.$refs[formName].resetFields(); } } }</script>第二种(对单个el-input设置必填限制):

el-input设置必填提示(单个&多个)(el-input_inner)

我是自己封装的组件,暂时没想到其他的方式,目前看来是能符合功能需求的。

1.定义组件input-required.vue

html代码:

<template> <div> <el-form ref="formRef" :model="form" :rules="formRules" label-width="80px" style="font-size:0.6vw"> <el-form-item :label="labelValue" :prop="this.propValue"> <el-input v-model="value" :placeholder="`请输入${labelValue}`" autocomplete="off" :disabled="isDisalbed" @change="isValid" ></el-input> </el-form-item> </el-form> </div></template>

javascript代码:

<script>export default { data() { return { value: "", form: {}, formRules: {} }; }, // 子组件使用props来接收父组件内传过来的数据 props: ["propValue", "labelValue", "isDisalbed", "indexValue"], created() { // 给子组件的对象动态添加属性并设置属性值 this.$set(this.form, this.propValue, ""); this.$set(this.formRules, this.propValue, [ { required: true, message: `${this.labelValue}不能为空`, trigger: "blur" } ]); }, methods: { // el-input失去焦点后会校验数据,空的话会提示,符合校验规则会触发父组件内方法更新视图数据 isValid() { // 把el-input输入框中的值赋给form对象,方便下一步向父组件传递 this.form[this.propValue] = this.value; this.$refs["formRef"].validate(valid => { if (valid) { this.$emit("updateData", this.form, this.indexValue); } }); } }};</script>

2.在要用到的地方引入使用组件

// 1.引入组件路径import InputRequired from "./components/input-required.vue";// 2.注册组件components: { InputRequired },// 3.使用组件 里面的disabled等属性按照自己需求添加就行,但是注意需要使用冒号 : 动态绑定数据// (1)这里的propValue是自定义组件里prop要绑定的属性,以及form中的属性;// (2)labelValue是自定义组件中label的值;// (3)isDisalbed是决定自定义组件中disabled是否启用;// (4)updateData方法用处是子组件内校验成功后触发父组件更新数据;<input-required :propValue="'attrName'" :labelValue="'模型参数'" :isDisalbed="true" @updateData="updateData" ></input-required>

成功(*^▽^*)!

----------------------------------------------------手动分割线------------------------------------------

今天下午写着写着突然想到,需求好像又不完全像上面的第二种一样,再更新一下吧,而且个人用着感觉这一版可能判断更精准一点.

需求是点击确认按钮,会判断参数值是否都填写了,但凡有一个没填写都会提示需要填写完整;只有所有的都填写完整才会继续往下运行.

 代码更新:

<!--这里设置ref动态绑定是给每一行唯一标识,不然表单校验的时候只会校验其中一行的数据,无法按照我们的想法每一行都去校验,这样即使有没填的也不会警告了,这可不行o(╯□╰)o --><input-required :ref="`required${scope.$index}`" :propValue="'attrValue'" :labelValue="'参数值'" :isDisalbed="false" :indexValue="scope.$index" @updateData="updateData" ></input-required>

 自定义组件内方法作如下修改:

isValid() { let flag = null; this.form[this.propValue] = this.value; this.$refs["formRef"].validate(valid => { if (valid) { flag = true; this.$emit("updateData", this.form, this.indexValue); } else { flag = false; } }); // 把每次校验的结果返回给父组件 return flag; }

 父组件内判断是否全部填写完毕:

// 确认配置完成,生成模型配置信息 submit() { let flag = true; // flag并上每一行校验的结果,如果全部填写,最后就是true,但凡有一行没有填写,flag都会是false for (let index = 0; index < this.algorithmParamOptions.length; index++) { flag = flag && this.$refs[`required` + index].isValid(); } if (flag) { ....... } else { this.$modal.msgError("请先填写完整!"); } },
本文链接地址:https://www.jiuchutong.com/zhishi/290838.html 转载请保留说明!

上一篇:Corjuem堡垒,印度果阿邦 (© Ingvar Kuznetsov/Shutterstock)(堡垒封印)

下一篇:从索尔兹伯里的峭壁上俯瞰爱丁堡,苏格兰荷里路德公园 (© Andrew Merry/Getty Images)(索尔兹伯里评价)

  • 抖音收藏和点赞有什么区别(抖音收藏和点赞哪个占内存)

    抖音收藏和点赞有什么区别(抖音收藏和点赞哪个占内存)

  • 荣耀30pro支持呼吸灯吗(荣耀30pro怎么设置语音拨号)

    荣耀30pro支持呼吸灯吗(荣耀30pro怎么设置语音拨号)

  • OPPO Ace2有多厚呢(oppoace2厚吗)

    OPPO Ace2有多厚呢(oppoace2厚吗)

  • 华为荣耀9x防水等级多少(honor 9x防水吗)

    华为荣耀9x防水等级多少(honor 9x防水吗)

  • 苹果如何关闭运行的应用(苹果如何关闭运营商更新)

    苹果如何关闭运行的应用(苹果如何关闭运营商更新)

  • 抖音上怎么看以前的广告(抖音上怎么看以前的直播回放)

    抖音上怎么看以前的广告(抖音上怎么看以前的直播回放)

  • 抖音可以看对方什么时候在线吗(抖音可以看对方点赞过的好友吗)

    抖音可以看对方什么时候在线吗(抖音可以看对方点赞过的好友吗)

  • 华为P40pro+上市时间(华为p40pro+上市价格)

    华为P40pro+上市时间(华为p40pro+上市价格)

  • 计算机中用来表示存储器容量的基本单位是( )。(计算机中用来表示内存容量大小的基本单位是)

    计算机中用来表示存储器容量的基本单位是( )。(计算机中用来表示内存容量大小的基本单位是)

  • 华为自动重启(华为自动重启解决方案)

    华为自动重启(华为自动重启解决方案)

  • vivo触屏失灵修复方法(vivo触屏失灵一招解决)

    vivo触屏失灵修复方法(vivo触屏失灵一招解决)

  • 佳博打印机打印不出来(佳博打印机打印纸安装教程)

    佳博打印机打印不出来(佳博打印机打印纸安装教程)

  • mate30拍照有多强(mate 30拍照)

    mate30拍照有多强(mate 30拍照)

  • qq文件存到微云怎么查看(qq文件存到微云占内存吗)

    qq文件存到微云怎么查看(qq文件存到微云占内存吗)

  • ios11有录屏功能吗(iphome11录屏)

    ios11有录屏功能吗(iphome11录屏)

  • comma是什么键(普通键盘的command在哪)

    comma是什么键(普通键盘的command在哪)

  • 打开运行窗口的快捷键(打开运行窗口的快捷键win7)

    打开运行窗口的快捷键(打开运行窗口的快捷键win7)

  • 京东第三方不审核咋办(京东第三方卖家审核没反应)

    京东第三方不审核咋办(京东第三方卖家审核没反应)

  • vivonex3是双扬声器吗(vivonexs是双扬声器吗)

    vivonex3是双扬声器吗(vivonexs是双扬声器吗)

  • ip地址能精确到家吗(ip地址能精确到小区吗)

    ip地址能精确到家吗(ip地址能精确到小区吗)

  • 黑鲨有小爱同学语音吗(黑鲨小爱同学叫不出来)

    黑鲨有小爱同学语音吗(黑鲨小爱同学叫不出来)

  • ie60和ie40pro买哪个(ie60对比ie80)

    ie60和ie40pro买哪个(ie60对比ie80)

  • qq空间手机型号怎么设置(qq空间手机型号修改)

    qq空间手机型号怎么设置(qq空间手机型号修改)

  • vivoiqoo如何截屏(vivoiqoo手机怎么截屏快捷键是什么)

    vivoiqoo如何截屏(vivoiqoo手机怎么截屏快捷键是什么)

  • BIOS常见词语小结(bios相关概念)

    BIOS常见词语小结(bios相关概念)

  • Element Plus 实例详解(一)___安装设置(elementui)

    Element Plus 实例详解(一)___安装设置(elementui)

  • phpcms提示验证码错误怎么办(php验证码源码)

    phpcms提示验证码错误怎么办(php验证码源码)

  • 帝国Cms中如何实现tag标签中文url(帝国cms使用手册)

    帝国Cms中如何实现tag标签中文url(帝国cms使用手册)

  • 进货增值税税率
  • 向职工支付困难证明材料
  • 实习生个人所得税需要申报吗
  • 预算会计无偿调拨净资产
  • 个税负数怎么做账
  • 某项目全部投资资金的40%由银行贷款
  • 公益募捐什么意思
  • 人力资源交哪些税费
  • 发行债券的会计要素
  • 员工报销增值税
  • 土地使用权出资入股税费
  • 银行已扣社保会计分录怎么做
  • 报废 库存商品
  • 未收到发票可以计提成本吗
  • 资产减值准备所得税申报中要填主表吗
  • 增值税专用发票验证真伪
  • 广告公司固定资产有哪些?
  • 项目自筹资金是什么意思
  • 国外发票可以报销吗
  • 3联收据
  • macbook截图快捷键没反应
  • 收到退回的土地使用税分录怎么做
  • win10开机强制进入高级选项怎么退出
  • win11中文安装包
  • 在linux中使用什么命令可以动态查看文件内容
  • 委托境外研发费用加计扣除比例
  • 完税证明和纳税申报表的金额不一致
  • ConquerCam.exe进程的详细介绍 ConquerCam进程信息介绍
  • 库拉索的死
  • php substr()
  • 给退休人员发放一次性工龄补贴是真的吗
  • element - - - - - 你不知道的loading使用方式
  • 程序人是什么意思
  • thinkphp写api
  • 转出未交增值税怎么算
  • 视频制作发票属于什么经营范围
  • 香港企业的所得税怎么算
  • 一切皆对象什么意思
  • 基本运算符号有乘方吗
  • mysql客户端怎么使用
  • 借方贷方有哪些
  • 建安企业确认收入的依据
  • 补交以前年度环保税会计分录
  • 延期缴纳土地使用税怎么办理
  • CentOS 7.3上SQL Server vNext CTP 1.2安装教程
  • 个税专项附加扣除标准调整
  • 外资研发中心可以上市吗
  • 无形资产减值准备借贷
  • 小规模纳税人什么时候用3%什么时候用5%
  • 无形资产摊销账面价值
  • 递延资产放在资产负债表哪里
  • 本年利润是什么科目?
  • 以前年度多计提的社保费怎么冲回
  • 投资款没有进入公司账户算投资款吗
  • mysql -ne
  • vista电脑密码忘了怎么解除
  • win2000系统禁止ping
  • 用心一也的一是什么词类活用
  • win10访问局域网电脑需要用户名和密码
  • winxp开启远程控制
  • linux chmod命令用法
  • 特俗字符
  • win10无法使用内置管理员账户
  • androidannotations的background和UiThread配合使用参考
  • 怎么检测端口通不通
  • 批处理 修改文件名
  • python解读
  • Jquery通过ajax请求NodeJS返回json数据实例
  • jquery动态添加的元素怎么添加事件
  • bootstrap基础教程pdf
  • javascript高级程序设计第五版 pdf下载
  • javascript nextSibling 与 getNextElement(node) 使用介绍
  • typescript concat
  • 欢迎使用来电提醒业务是什么意思
  • linux装python环境
  • Android应用程序可以直接在ios中安装运行吗
  • 咸阳国税局长是哪里人
  • 工会经费怎么缴纳不了
  • 航天金税开票软件服务费可以抵扣税款吗
  • 山西省税务局官网登录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设