第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在元素未聚焦之前未添加或刪除 BeforeUnload 偵聽器

在元素未聚焦之前未添加或刪除 BeforeUnload 偵聽器

慕尼黑8549860 2022-06-16 15:04:02
我正在開發(fā)一個(gè)通用應(yīng)用程序,讓用戶輸入公式并保存,yadda yadda。我想確保在未保存更改時(shí)警告用戶,通過應(yīng)用內(nèi)路由和 beforeunload 事件觸發(fā)的提示。兩者都應(yīng)該在發(fā)生更改時(shí)處于活動(dòng)狀態(tài),但如果沒有任何更改/表單為空,則恢復(fù)為非活動(dòng)狀態(tài)。第一個(gè)完美無缺。第二個(gè),“beforeunload”事件也被讀取和刪除,但前提是觸發(fā)更改為“isEmpty / isDifferent”狀態(tài)的輸入元素首先未獲得焦點(diǎn)。這很煩人,因?yàn)楫?dāng)用戶開始輸入時(shí)它不會(huì)提供即時(shí)反饋,因?yàn)榧词乖撟侄尾粸榭?,用戶也可以通過刷新使頁(yè)面不被警告,因?yàn)樗麤]有使輸入失去焦點(diǎn)。以下是相關(guān)代碼:handleBeforeUnload (e) {      console.log('leaving')      e.preventDefault()    },    leaving (preventDefault) {      if (preventDefault) {        window.addEventListener('beforeunload', this.handleBeforeUnload)        console.log('should be added')      } else {        window.removeEventListener('beforeunload', this.handleBeforeUnload)        console.log('should be removed')      }    }  },  components: {    'form-input': Input,    modal: Modal  },  watch: {    isEmpty () {      this.leaving(!this.isEmpty)    }  },現(xiàn)在我只配置了組件來處理新文檔,這就是為什么我現(xiàn)在只使用“isEmpty”作為狀態(tài)。在“handleBeforeUnload”方法之前,該鏈按預(yù)期工作,該方法只能在用戶在輸入未聚焦后刷新或類似情況下觸發(fā)。我推測(cè)這種行為可能是 Vue 的生命周期鉤子的結(jié)果,特別是“beforeDestroy”,但我不確定。是什么導(dǎo)致了這種行為?提前致謝。
查看完整描述

1 回答

?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊

已解決:這已被確認(rèn)為我在輸入字段上使用“更改”處理程序的副作用,也就是更改處理程序的預(yù)期行為。DOM 在“模糊”事件之前沒有更新,當(dāng)我嘗試通過驗(yàn)證禁用提交按鈕時(shí)發(fā)現(xiàn)了這一點(diǎn),這導(dǎo)致了同樣的問題。將輸入元素上的“change”事件換成“keyup”解決了這個(gè)問題。



查看完整回答
反對(duì) 回復(fù) 2022-06-16
  • 1 回答
  • 0 關(guān)注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)