最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js之input[type=file]選擇重復的文件,無法觸發(fā)change事件問題

 更新時間:2023年05月25日 10:34:57   作者:草字  
這篇文章主要介紹了js之input[type=file]選擇重復的文件,無法觸發(fā)change事件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

input[type=file]選擇重復的文件,無法觸發(fā)change事件

選擇文件的時候,瀏覽器會判斷是否跟之前一致,如果一致他就不會重新加載這個文件,避免無謂的加載消耗。

所以我們在不一樣的需求的時候,比如裁剪圖片,無論他是不是相同圖片,都必須讓他觸發(fā)change事件,這樣才能進行下一步處理。

解決方法

給input添加原生事件onblur進行清空,οnblur="this.value=''" ,blur比change事件的優(yōu)先級要高一點。

代碼:

<input type="file" accept="image/*" οnblur="this.value=''" @change="uploadPhoto" class="uploadImg"/>

解決input file change監(jiān)聽文件(圖片)上傳事件多次觸發(fā)

文件上傳html代碼:

<a name="uploadFile" id="uploadFile" href="javascript:;" rel="external nofollow" >[上傳文件]</a>
<input id="myFile" name="myFile" value="上傳圖片" type="file" accept="application/vnd.ms-excel" style="display: none"/>

在上傳文件時候,通常想要監(jiān)聽文件上傳事件:

    /**
     * 點擊上傳文件,觸發(fā)input type="file"
     */
     $("#uploadFile").click(function () {
        const myFile = $("#myFile")
        // 觸發(fā)
        myFile.click()
        // 監(jiān)聽change事件 
        myFile[0].addEventListener('change', function (e) {
            var filesList = document.querySelector('#myFile').files;
            if(filesList.length==0){ //如果取消上傳,則上傳文件的長度為0
                console.log("沒有上傳任何文件");
                return;
            }else{
                //如果有文件上傳,這在這里面進行
                console.log(filesList);
            }
        });
    });

但是結(jié)果一次改變,卻觸發(fā)多次監(jiān)聽:

由于file input出于安全角度,是不允許賦值的,即使是置空,雖然通過給outerHtml賦值可以清空,但僅在ie下起使用。

因為缺少置空的方法,用戶異步上傳完畢文件后選擇相同文件時,不會觸發(fā)change,因為在這種情況下,我們沒有辦法使value(也就是文件路徑)發(fā)生變化。

解決方法是

每次選完文件,就重建此元素,這樣值自然是空的,因為clone不帶值,這樣就是一個全新的file input,每一次選擇,自然各種正常。

    /**
     * 點擊上傳文件,觸發(fā)input type="file"
     */
    $("#uploadFile").click(function () {
        const myFile = $("#myFile")
        // 觸發(fā)
        myFile.click()
        // 監(jiān)聽change事件 
        myFile.unbind().change(function (e) {
            console.log(e)
        })
    });

這樣每上傳一次不同的文件就可以監(jiān)聽到一次改變,符合監(jiān)聽的效果:

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 微信公眾號weixin-js-sdk使用方法總結(jié)

    微信公眾號weixin-js-sdk使用方法總結(jié)

    最近做了一個活動頁面,需要自定義微信分享的標題、詳情、縮略圖和url,使用到了jssdk,這篇文章主要給大家介紹了關(guān)于微信公眾號weixin-js-sdk使用方法的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 淺談如何使用 webpack 優(yōu)化資源

    淺談如何使用 webpack 優(yōu)化資源

    本篇文章主要介紹了淺談如何使用 webpack 優(yōu)化資源,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 微信小程序嵌入H5頁面(webview)的基本用法和父子傳參數(shù)詳細說明

    微信小程序嵌入H5頁面(webview)的基本用法和父子傳參數(shù)詳細說明

    微信小程序中嵌入H5頁面通常指的是在小程序中使用Web-view組件來加載外部的網(wǎng)頁,下面這篇文章主要給大家介紹了關(guān)于微信小程序嵌入H5頁面(webview)的基本用法和父子傳參數(shù)的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • JavaScript中創(chuàng)建字典對象(dictionary)實例

    JavaScript中創(chuàng)建字典對象(dictionary)實例

    這篇文章主要介紹了JavaScript中創(chuàng)建字典對象(dictionary)實例,本文直接給出了實現(xiàn)的源碼,并給出了使用示例,需要的朋友可以參考下
    2015-03-03
  • DOM節(jié)點的替換或修改函數(shù)replaceChild()用法實例

    DOM節(jié)點的替換或修改函數(shù)replaceChild()用法實例

    這篇文章主要介紹了DOM節(jié)點的替換或修改函數(shù)replaceChild()用法,實例分析了replaceChild()替換DOM節(jié)點的使用技巧,需要的朋友可以參考下
    2015-01-01
  • 微信小程序?qū)崿F(xiàn)短信登錄的實戰(zhàn)

    微信小程序?qū)崿F(xiàn)短信登錄的實戰(zhàn)

    項目要求增加短信登錄及人臉識別登錄功能,本文就來實現(xiàn)一下 短信登錄功能,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • JS OffsetParent屬性深入解析

    JS OffsetParent屬性深入解析

    本篇文章要是對JS中的OffsetParent屬性進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所 幫助
    2014-01-01
  • JavaScript 對象成員的可見性說明

    JavaScript 對象成員的可見性說明

    與java等基于類的面向?qū)ο笳Z言的private、protected、public等關(guān)鍵字的用途類似,基于對象的JavaScript語言,在對象構(gòu)造上也存在類似的成員可見性問題。
    2009-10-10
  • 淺談js中變量初始化

    淺談js中變量初始化

    這篇文章主要介紹了淺談js中變量初始化的相關(guān)資料,需要的朋友可以參考下
    2015-02-02
  • 微信小程序?qū)崿F(xiàn)虎年春節(jié)頭像制作

    微信小程序?qū)崿F(xiàn)虎年春節(jié)頭像制作

    春節(jié)來臨之際,看到有網(wǎng)友分享了網(wǎng)頁版的虎年頭像制作工具。本文將為大家介紹一個虎年春節(jié)頭像制作小程序,文中的示例代碼講解詳細,需要的可以參考一下
    2022-02-02

最新評論

平乐县| 成都市| 三穗县| 乌兰察布市| 灵武市| 高碑店市| 惠东县| 永春县| 浦城县| 瑞安市| 济南市| 乐安县| 宝丰县| 张北县| 锦屏县| 来凤县| 卢龙县| 榆中县| 广汉市| 台江县| 卢湾区| 甘孜| 呈贡县| 吉首市| 大埔区| 施甸县| 唐河县| 宜兰县| 桃江县| 马边| 虎林市| 错那县| 嵊州市| 宜春市| 游戏| 耒阳市| 阜平县| 沈丘县| 尼勒克县| 兰西县| 连州市|