在 SPA 網頁中模擬用戶輸入
在 SPA 環境下單純抓 DOM 並修改 value 沒辦法觸發資料更新
花了一點時間找到解決辦法,記錄一下。
在 Vue 中使用 input 表單通常會使用到語法糖 v-model,今天我在寫一個簡單的登入腳本時發現單純抓 DOM 並沒辦法觸發 input 函數來使資料更新,查了一下解決辦法是要在更新資料後手動呼叫 input 函數就可以了。
另外也學習了手動呼叫 addEventListener 方法
1 | <button id="myBtn">按我</button> |
1 | // 宣告按鈕的觸發事件 |
當我們想要在其他地方觸發這個事件的時候,例如最簡單的情境,就是讀取時直接觸發。
我們可以用 JavaScript 這樣寫:
1 | // 自動觸發點擊事件 dispatchEvent |
其中,new Event(“事件”),Event 括號裡面的事件,是要與原綁定的 addEventListener 事件相同。也就是說,如果原本綁定的是 change 事件,那麼 Event 括號裡面也要使用 change 事件。
這份範例程式碼呈現的結果,就是讀取檔案之後,會立即觸發一次 myclick() 函式。
套用上面教學範例可以修改成一個簡易的登入程式碼
1 | // 定義要填入的資料 |