elementui表单验证图片

项目中有遇到表单验证的页面,


image.png

image.png

一行里面怎么做两个验证呢,我想了一下就添加了一个<el-form-item></el-form-item>,label设为空,我们上传图片是用原生写的,怎么样才能让他在上传图片之后下面的提示直接消失呢,我在下面加了一个<el-input/>标签,绑定我们需要验证的值,修改css样式当我们点击上传的时候触发<el-input/>失去焦点的事件,
上代码

 <el-form-item label="上传身份证件" prop="manageidFront">
                        <div style="display: flex">
                          <div class="certificate_bg" @mouseenter="moveIn('manageidFront')" @mouseleave="moveLeave('manageidFront')">
                            <img src="../../assets/img/business/error.png" alt="" class="filepath_del" @click="delFile('manageidFront')" v-if="manageidFront">
                            <img class="filepathImg" v-if="form.manageidFront" :src="form.manageidFront" alt="">
                            <img src="../../assets/img/business/certificate_back.png" alt="" style="margin: 10px 0" v-else>
                            <input type="file" v-if="!form.manageidFront" class="filepath" @change="changepic($event,'manageidFront')" accept="image/jpg,image/jpeg,image/png,image/PNG">
                            <span @click="uploadImg('manageidFront')" v-if="!form.manageidFront" class=" chose_file">选择文件</span>
                            <div class="preview" @click="previewFile('manageidFront')" v-if="manageidFront">预览</div>

                            <el-input v-model="form.manageidFront" type="textarea" style="margin-top: -15px;opacity: 0"></el-input>
                          </div>
                          <div class="id_back">
                            <el-form-item label="" prop="manageidBack">
                          <div class="certificate_bg"  @mouseenter="moveIn('manageidBack')" @mouseleave="moveLeave('manageidBack')">
                            <img src="../../assets/img/business/error.png" alt="" class="filepath_del" @click="delFile('manageidBack')" v-if="manageidBack">
                            <img class="filepathImg" v-if="form.manageidBack" :src="form.manageidBack" alt="">
                            <img src="../../assets/img/business/certificate_back.png" alt="" style="margin: 10px 0" v-else>
                            <input type="file"  v-if="!form.manageidBack" class="filepath" @change="changepic($event,'manageidBack')" accept="image/jpg,image/jpeg,image/png,image/PNG">
                            <span @click="uploadImg('manageidBack')" v-if="!form.manageidBack" class=" chose_file">选择文件</span>
                            <div class="preview" @click="previewFile('manageidBack')"  v-if="manageidBack">预览</div>
                            <el-input v-model="form.manageidBack" type="textarea" style="margin-top: -15px;opacity: 0"></el-input>
                          </div>
                            </el-form-item>
                          </div>
                        </div>
                      </el-form-item>

rules里面这样写

manageidFront:[ {required: true, message: '请上传身份证人像面', trigger: 'change'},],
manageidBack:[ {required: true, message: '请上传身份证国徽面', trigger: 'change'},]

css样式

 .certificate_bg{
    width:100px;
    height:100px;
    background:rgba(242,242,242,1);
    margin-right: 30px;
    position: relative;
  }
  .filepathImg{
    width: 100%;
    height: 80%;
  }
 .filepath{
    position: absolute;
    z-index: 20;
    width: 100px;
    height: 50px;
    background: #00a8ff;
    opacity: 0;
    bottom: 0;
    left: 0;
  }

我这样做效果是实现了,但是绝对不是最好的方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Web网站测试流程和方法(转载) 1测试流程与方法 1.1测试流程 进行正式测试之前,应先确定如何开展测试,不可盲...
    夏了夏夏夏天阅读 5,081评论 0 0
  • 4代表:人物 大女儿 身体 乳房胸腺 淋巴 企业 宣传部 低能量的地方! 9 代表 人物 二女儿 身体 眼睛 心脏...
    真诚永恒阅读 3,715评论 0 0
  • 早上5点钟的天空,很是漂亮。 在车间里面干活,偶尔往外看,发现地上有一层粉红色的光晕,想到一定是天上出现彩霞了。特...
    树兜把阅读 4,101评论 5 17
  • 亲情,永远最重要, 不管你人在哪里,心在何处 不管你走到海角,还是天涯 家里始终有 一个惦记你的母亲 一个思念你的...
    大甜妞阅读 3,808评论 0 1
  • 凌晨二点,我走在二千米长的海滩上,赤脚踩在松软的沙子上,心里不禁想起很多人心中的疑问:沙子里面究竟是些什么,仅是风...
    天元_ae03阅读 8,381评论 63 102