我正在嘗試創建一個包含登錄頁面的網頁。當用戶第一次登錄時,瀏覽器將保存用戶名和密碼,如果他檢查「保持登錄狀態」。當他第二次登錄時,瀏覽器將自動填寫表單,我可以在不需要他與頁面交互的情況下登錄他。檢測登錄表單的自動填充
問題是,我無法從登錄表單中獲取密碼。看看我的代碼:
$(document).ready(setTimeout(function() {
loginForm.form.submit(function(e) { // I don't have a onsubmit action defined on the login form
console.log("Submit");
checkLogin(); // This function should get the username and password value and makes a credential check but I cant get the password here
});
var username = $(".login-form__username").val();
var password = $(".login-form__password").val(); // This always is "", an empty string!
if (username) { // If the username is set we assume its an autofill
console.log("autofilled");
loginForm.form.submit(); // I manually fire the submit event when the browser autofills the username and password field
}
}, 100));
我可以清楚地看到,該用戶名和密碼填寫到表格,但不知何故,我不能得到密碼。一切順利如果我手動點擊表單的提交按鈕。這當然會觸發checkLogin();
,我可以在這裏獲得密碼。但它不會工作,如果我在文檔準備好事件後手動觸發事件。
有誰知道如何解決這個問題,或者爲什麼會發生這種情況?
謝謝,大衛
編輯
我想通了,這問題只在Chrome似乎爲Mac,它就像在Chrome魅力爲Windows和Firefox瀏覽器。這不適用於Safari,因爲您需要選擇您想要登錄的用戶。
另外我也想通了,認爲重點需要設置爲網頁itselfe,而不是在網址欄或在refreshButton
你設置'username'和'password'當首先加載頁面,而不是在用戶提交表單時加載。 – Barmar
什麼是'loginForm.username.val()'? – lshettyl
@Barmar這兩行只是爲了驗證瀏覽器是否自動填充表單。所以如果用戶名值不爲空,它將觸發提交事件。我將編輯我的問題 –