基于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 相关文章推荐
效率高的Javscript字符串替换函数的benchmark
Aug 02 Javascript
别了 JavaScript中的isXX系列
Aug 01 Javascript
jQuery中removeData()方法用法实例
Dec 27 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
Apr 12 Javascript
jQuery遍历DOM节点操作之filter()方法详解
Apr 14 Javascript
jQuery中delegate()方法的用法详解
Oct 13 Javascript
AngularJs基于角色的前端访问控制的实现
Nov 07 Javascript
element-ui 限制日期选择的方法(datepicker)
May 16 Javascript
微信小程序获取用户openid的实现
Dec 24 Javascript
js根据需要计算数组中重复出现某个元素的个数
Jan 18 Javascript
微信小程序按顺序同步执行的两种方式
Dec 20 Javascript
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 Vue.js
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 COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
numpy排序与集合运算用法示例
2017/12/15 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
Python实现快速排序的方法详解
2019/10/25 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
基于python实现查询ip地址来源
2020/06/02 Python
python多线程和多进程关系详解
2020/12/14 Python
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
canvas绘制太极图的实现示例
2020/04/29 HTML / CSS
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
幼儿园大班教学反思
2016/03/02 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
剑指Offer之Java算法习题精讲二叉树的构造和遍历
2022/03/21 Java/Android