基于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 轻松支持函数重载 (Part 2 - 实现)
Aug 04 Javascript
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
Nov 25 Javascript
javascript淡入淡出效果的实现思路
Mar 31 Javascript
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
Mar 05 Javascript
Extjs Gird 支持中文拼音排序实现代码
Apr 15 Javascript
node.js中watch机制详解
Nov 17 Javascript
Javascript数据结构与算法之列表详解
Mar 12 Javascript
jquery实现文本框的禁用和启用
Dec 07 Javascript
js代码延迟一定时间后执行一个函数的实例
Feb 15 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
Aug 17 Javascript
微信小程序 导入图标实现过程详解
Oct 11 Javascript
JavaScript前后端JSON使用方法教程
Nov 23 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
phalcon框架使用指南
2016/02/23 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
网页中CDATA标记的说明
2010/09/12 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
python中的reduce内建函数使用方法指南
2014/08/31 Python
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
英国袜子店:Sock Shop
2017/01/11 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
秋季运动会稿件
2014/01/30 职场文书
明星员工获奖感言
2014/08/14 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
学生检讨书范文
2019/06/24 职场文书
导游词幽默开场白
2019/06/26 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书