基于VUE選擇上傳圖片并頁面顯示(圖片可刪除)
更新時間:2017年05月25日 12:07:32 作者:嘉爺
這篇文章主要為大家詳細(xì)介紹了基于VUE選擇上傳圖片并頁面顯示,圖片可以刪除的效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
基于VUE選擇上傳圖片并在頁面顯示,圖片可刪除,具體內(nèi)容如下
demo例子:

依賴文件:jqueryform
HTML文本內(nèi)容:
<template> <div id="accident"> <div class="wrapper"> <i class="icon-pic"></i>相關(guān)照片 <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文本內(nèi)容:
<script>
/**
* 從 file 域獲取 本地圖片 url
*/
function getFileUrl(obj) {
let url;
url = window.URL.createObjectURL(obj.files.item(0));
return url;
}
export default {
name: 'accident',
// 定義數(shù)據(jù)
data () {
return {
imgNum:4, //上傳的照片數(shù)量,可根據(jù)實(shí)際情況自定義
}
},//定義事件
methods:{
//根據(jù)點(diǎn)擊上傳按鈕觸發(fā)input
change_input(){
let inputArr=$('#addTextForm input');
let add_inputId=''; //需要被觸發(fā)的input
for(let i=0;i<inputArr.length;i++){
// 根據(jù)input的value值判斷是否已經(jīng)選擇文件
if(!inputArr[i].value){ //如果沒有選擇,獲得這個input的ID
add_inputId=inputArr[i].id;
break;
}
}
if(add_inputId){ //如果需要被觸發(fā)的input ID存在,將對應(yīng)的input觸發(fā)
return $("#"+add_inputId).click();
}else{
alert("最多選擇"+this.imgNum+"張圖片")
}
},
//當(dāng)input選擇了圖片的時候觸發(fā),將獲得的src賦值到相對應(yīng)的img
setImg(e){
let target=e.target;
$('#img_'+target.id).attr('src',getFileUrl(e.srcElement));
},
//點(diǎn)擊圖片刪除該圖片并清除相對的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('提交失敗');
}
}
});
}
},
//頁面加載后執(zhí)行
mounted(){
for(let i=0;i<this.imgNum;i++){
//生成input框,默認(rèn)為1
let my_input = $('<input type="file" name="image" />'); //創(chuàng)建一個input
my_input.attr('id',i); //為創(chuàng)建的input添加id
$('#addTextForm').append(my_input); //將生成的input追加到指定的form
//生成img,默認(rèn)為1
let my_img = $('<img src="">');
my_img.attr('id', 'img_'+i);
my_img.css({"max-width":"50%","max-height":"200px"});
//添加樣式,由于vue的執(zhí)行機(jī)制,頁面加載的時候img標(biāo)簽還沒有生成,直接寫在style樣式會不生效
$('#img-wrapper').append(my_img);
}
},
}
</script>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- JS移動端/H5同時選擇多張圖片上傳并使用canvas壓縮圖片
- PHP實(shí)現(xiàn)微信JS-SDK接口選擇相冊及拍照并上傳的方法
- js實(shí)現(xiàn)上傳文件添加和刪除文件選擇框
- file控件選擇上傳文件確定后觸發(fā)的js事件是哪個
- 瀏覽器圖片選擇預(yù)覽、旋轉(zhuǎn)、批量上傳的JS代碼實(shí)現(xiàn)
- select下拉選擇框美化實(shí)現(xiàn)代碼(js+css+圖片)
- js實(shí)現(xiàn)下拉框選擇要顯示圖片的方法
- JS實(shí)現(xiàn)的input選擇圖片本地預(yù)覽功能示例
- JS實(shí)現(xiàn)的radio圖片選擇按鈕效果
- vue+js實(shí)現(xiàn)微信上傳圖片選擇功能
相關(guān)文章
Vue 兩個字段聯(lián)合校驗之修改密碼功能的實(shí)現(xiàn)
本文以校驗兩次密碼的一致性應(yīng)用,給出兩個可變屬性值的字段之間的聯(lián)合校驗的典型解決方案,通過實(shí)例代碼給大家介紹Vue 兩個字段聯(lián)合校驗之修改密碼功能的實(shí)現(xiàn),需要的朋友一起看看吧2021-07-07
vue 路由頁面之間實(shí)現(xiàn)用手指進(jìn)行滑動的方法
下面小編就為大家分享一篇vue 路由頁面之間實(shí)現(xiàn)用手指進(jìn)行滑動的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨跟隨小編過來看看吧2018-02-02
Vue 使用formData方式向后臺發(fā)送數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了Vue 使用formData方式向后臺發(fā)送數(shù)據(jù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04

