鍍金池/ 問答/HTML/ vue 中v-if 或者v-show 登錄彈框 退出再登錄時(shí)input框里面

vue 中v-if 或者v-show 登錄彈框 退出再登錄時(shí)input框里面的值并未清除

只有一個(gè)頁(yè)面,沒有路由什么的,登錄框是一個(gè)彈框,登錄就v-show或者v-if彈出彈框,開始用的v-show發(fā)現(xiàn)input框內(nèi)的值未消除(并不是允許瀏覽器記錄的登錄信息),然后換v-if,v-if再關(guān)閉彈框之后是清除dom的,但是登錄成功,再注銷登錄后,再點(diǎn)擊登錄彈出彈框,其中的input值還是在,此時(shí)看到v-if中要有key值,那么我使用隨機(jī)值給用戶名和密碼的input框加了key = '隨機(jī)數(shù)',隨機(jī)數(shù)是在彈框出現(xiàn)后切換到登錄頁(yè)面的時(shí)候產(chǎn)生的,但是此時(shí)input框中的值還是存在的,input中用的是v-model,請(qǐng)問這個(gè)是什么問題呢?該怎么解決呢?或者說就是應(yīng)該在登錄成功后去寫代碼手動(dòng)置其中的用戶名和密碼為空才行?或者每次彈框出現(xiàn)時(shí)置空。那會(huì)不會(huì)不能使用瀏覽器的保存的用戶名和密碼功能?

回答
編輯回答
挽歌

因?yàn)槟愕腣iewModel里面還有值嗎

2018年8月8日 22:43
編輯回答
擱淺

這真是個(gè)奇怪的問題,我查看之前自己做的練習(xí)中,正常的vuex管理彈框的登錄,注銷清除值這樣的操作一點(diǎn)問題也沒有,讓瀏覽器記住密碼就有自動(dòng)填充,不讓記住就沒有自動(dòng)填充。但是在這個(gè)項(xiàng)目中就是不行。反復(fù)排查問題已經(jīng)解決,但是還不是很清楚原因。
此處我再描述一下我的項(xiàng)目處理,以及問題解決辦法,請(qǐng)大神幫我理一下原理。
首先一進(jìn)入頁(yè)面會(huì)去請(qǐng)求接口判斷是否有登錄信息,如果有去請(qǐng)求登錄信息,保存在vuex中用在別的地方,并在頁(yè)面中顯示登錄名。沒有則不處理(這塊其實(shí)不合理,但是我們出于一些考慮就這樣做了);
登錄是點(diǎn)擊按鈕就彈出彈框進(jìn)行登錄,給后臺(tái)發(fā)送登錄信息,成功之后再去后臺(tái)請(qǐng)求返回的登錄信息,因?yàn)橐恍〇|西需要后臺(tái)加密,所以又從后臺(tái)拿了一遍密碼身份證等信息,但這些和登錄框中的input值沒關(guān)系,input中的值沒有在vuex中維護(hù)。(并且我排查過程中,將input中的值在vuex中維護(hù),在注銷時(shí)清空還是不能達(dá)到預(yù)期效果)。注銷時(shí)清空了維護(hù)在vuex中的登錄想關(guān)信息。
還有一點(diǎn),我的登錄框一彈出來的時(shí)候,還是一個(gè)v-if v-else組合,因?yàn)橄纫@示一個(gè)數(shù)字證件登錄的頁(yè)面,按ctrl+q之后就會(huì)切換到表單登錄的框;
解決辦法:
反復(fù)排查,必須做到這兩點(diǎn)才可以實(shí)現(xiàn)預(yù)期的效果:
1、使用form包裹表單之后瀏覽器記錄密碼才能自動(dòng)填充,否則始終不自動(dòng)填充。(form中的button全改成a,否則會(huì)自動(dòng)刷新頁(yè)面)
2、v-if必須寫在父親組件中調(diào)用子組件的位置
<login-wrap v-if="loginBoxFlag"></login-wrap>,
而不能寫在子組件中最外層div上,否則即使不允許瀏覽器記住密碼,每次注銷后,再點(diǎn)彈出登錄框之后input都有值存在,并且input并沒有黃色的背景(就是瀏覽器自動(dòng)填充時(shí)的背景色)

不知道問題到底是在哪里?有明白的請(qǐng)幫我解析一下,3q。

2018年5月21日 11:01