基于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 相关文章推荐
javascript学习网址备忘
May 29 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
Sep 02 Javascript
JavaScript中的包装对象介绍
Jan 27 Javascript
JavaScript阻止浏览器返回按钮的方法
Mar 18 Javascript
浅析angularJS中的ui-router和ng-grid模块
May 20 Javascript
JS实现回到页面顶部动画效果的简单实例
May 24 Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 Javascript
微信小程序 表单Form实例详解(附源码)
Dec 22 Javascript
Vue利用canvas实现移动端手写板的方法
May 03 Javascript
vue  directive定义全局和局部指令及指令简写
Nov 20 Javascript
vscode vue 文件模板的配置方法
Jul 23 Javascript
基于JavaScript实现单例模式
Oct 30 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中最容易忘记的一些知识点总结
2013/04/28 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
2013/06/25 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
js实现简单模态框实例
2018/11/16 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
Android分包MultiDex策略详解
2017/10/30 Python
Python中装饰器学习总结
2018/02/10 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
个人承诺书格式
2014/06/03 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
2014年残联工作总结
2014/11/21 职场文书
英语感谢信范文
2015/01/20 职场文书
python内置进制转换函数的操作
2021/06/02 Python
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers
MySQL 语句执行顺序举例解析
2022/06/05 MySQL
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS