每年,我都會有一個大約100行的電子表格,我需要一次一行地將數據提交到一個網站。與其浪費我100次手工填寫表格的時間,我浪費了時間寫一些JavaScript來處理它。使用Vanilla腳本編寫角形JavaScript
該代碼已經爲我服務了3年,但現在他們已經升級到Angular JS應用程序,現在我不確定如何填充表單,就好像它們已被人填充一樣。
就拿https://codepen.io/sevilayha/full/xFcdI/
這個角形式。我想能夠設置元素的值之前,點擊它們以確保髒狀態被觸發,點擊提交,並可以做到,但有角似乎並沒有應用到工作:
function setAndClick(selector, value) {
const el = document.querySelector(selector);
el.value = value;
el.click();
}
setAndClick('[name="name"]', 'Happy Robot');
setAndClick('[name="username"]', 'happyrobot');
setAndClick('[name="email"]', '[email protected]');
上的字段手動點擊他們已經填補腳本後也觸發一個骯髒的狀態,但我找不到任何情況下(其他城市,KEYUP,KEYDOWN等),可以以編程方式觸發它。
如何使用vanilla JavaScript成功填寫並提交Angular App中的表單?
angular有一個'$ digest'循環,它與每個表單元素的'ng-model'支持的變量的狀態與輸入的狀態匹配。以編程方式更改輸入不會觸發'$ digest',因此不會反映外部更改,並且* does *觸發'$ digest'的任何操作都可能會消除這些外部更改。您必須鉤入頁面上的角度應用程序,並使用'$ scope。$ apply()'手動觸發'$ digest',但此時,您可能應該直接更改變量值,而不是注入將這些值輸入到輸入中。 – Claies