基于VUE选择上传图片并页面显示(图片可删除)


Posted in Javascript onMay 25, 2017

基于VUE选择上传图片并在页面显示,图片可删除,具体内容如下

demo例子:

基于VUE选择上传图片并页面显示(图片可删除)

依赖文件:jqueryform

HTML文本内容:

<template>
 <div id="accident">
 <div class="wrapper">
 <i class="icon-pic"></i>相关照片
 <button type="button" @click="change_input()">上传照片</button>
 <form id="addTextForm" @change="setImg($event)">
 </form>
 </div>
 <div id="img-wrapper" @click="deleteImg($event)"></div>
 <P class="btn-wrapper">
 <mt-button type="primary" @click="submit()">提交</mt-button>
 </P>
 </div>
</template>

JS文本内容:

<script>
 /** 
 * 从 file 域获取 本地图片 url 
 */ 
 function getFileUrl(obj) { 
 let url; 
 url = window.URL.createObjectURL(obj.files.item(0)); 
 return url; 
 }

export default {
 name: 'accident',
 // 定义数据
 data () {
 return {
 imgNum:4, //上传的照片数量,可根据实际情况自定义 
 }
 },//定义事件
 methods:{
 //根据点击上传按钮触发input
 change_input(){
 let inputArr=$('#addTextForm input');
 let add_inputId=''; //需要被触发的input
 for(let i=0;i<inputArr.length;i++){
 // 根据input的value值判断是否已经选择文件
 if(!inputArr[i].value){ //如果没有选择,获得这个input的ID 
 add_inputId=inputArr[i].id;
 break;
 }
 }
 if(add_inputId){ //如果需要被触发的input ID存在,将对应的input触发
 return $("#"+add_inputId).click();
 }else{
 alert("最多选择"+this.imgNum+"张图片")
 }
 },
 //当input选择了图片的时候触发,将获得的src赋值到相对应的img
 setImg(e){
 let target=e.target;
 $('#img_'+target.id).attr('src',getFileUrl(e.srcElement));
 },
 //点击图片删除该图片并清除相对的input
 deleteImg(e){
 let target=e.target;
 let inputID=''; //需要清除value的input
 if(target.nodeName=='IMG'){
 target.src='';
 inputID=target.id.replace('img_',''); //获得需要清除value的input
 $('input#'+inputID).val("");
 }
 },
 //提交信息到后台
 submit(){
 $("#addTextForm").ajaxSubmit({
 url: this.$root.api+"/Index/staff_accident/add", 
 type: "post",
 data: {
 'total_price':this.price,
 'descript':this.descript,
 },
 success: (data) => {
 if(data.code==0){
 console.log(‘提交成功');
 }else{
 alert('提交失败');
 }
 }
 }); 
 }
 },
 //页面加载后执行
 mounted(){
 for(let i=0;i<this.imgNum;i++){
 //生成input框,默认为1
 let my_input = $('<input type="file" name="image" />'); //创建一个input
 my_input.attr('id',i); //为创建的input添加id
 $('#addTextForm').append(my_input); //将生成的input追加到指定的form
 //生成img,默认为1
 let my_img = $('<img src="">');
 my_img.attr('id', 'img_'+i);
 my_img.css({"max-width":"50%","max-height":"200px"}); 

 //添加样式,由于vue的执行机制,页面加载的时候img标签还没有生成,直接写在style样式会不生效
 $('#img-wrapper').append(my_img); 
 }
 },
}
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js加载读取内容及显示与隐藏div示例
Feb 13 Javascript
javascript委托(Delegate)blur和focus用法实例分析
May 26 Javascript
js实现图片淡入淡出切换简易效果
Aug 22 Javascript
BooStrap对导航条的改造实践小结
Sep 21 Javascript
JS实现重新加载当前页面
Nov 29 Javascript
前端JS面试中常见的算法问题总结
Dec 23 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
Mar 15 Javascript
深入理解基于vue-cli的vuex配置
Jul 24 Javascript
Vue引入jquery实现平滑滚动到指定位置
May 09 jQuery
Vue2.0 实现移动端图片上传功能
May 30 Javascript
vue-router动态设置页面title的实例讲解
Aug 30 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
May 05 Javascript
jQuery滚动插件scrollable.js用法分析
May 25 #jQuery
Angular2学习教程之TemplateRef和ViewContainerRef详解
May 25 #Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
May 25 #Javascript
vue-router实现webApp切换页面动画效果代码
May 25 #Javascript
Angular 2.x学习教程之结构指令详解
May 25 #Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
May 25 #Javascript
js获取一组日期中最近连续的天数
May 25 #Javascript
You might like
PHP 创建标签云函数代码
2010/05/26 PHP
php实现快速排序的三种方法分享
2014/03/12 PHP
php数组操作之键名比较与差集、交集赋值的方法
2014/11/10 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
JQuery为元素添加样式的实现方法
2016/07/20 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
vue+element实现打印页面功能
2019/05/20 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
python原始套接字编程示例分享
2014/02/21 Python
Python装饰器使用示例及实际应用例子
2015/03/06 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
解决redis与Python交互取出来的是bytes类型的问题
2020/07/16 Python
浅谈python锁与死锁问题
2020/08/14 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
协议书格式
2014/04/23 职场文书
铅球加油稿100字
2014/09/26 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
大学生求职自荐信
2015/03/24 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
领导新年致辞2016
2015/07/29 职场文书
pytorch Dropout过拟合的操作
2021/05/27 Python
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle