簡體   English   中英

瀏覽器(chrome,firefox)jquery .val()不適用於自動填充的輸入字段(用戶名,密碼)

[英]browser (chrome, firefox) jquery .val() does not work for autofilled input fields (username, password)

僅當長度不為0且用戶名和密碼不為空時,執行此代碼才能啟用登錄按鈕,依此類推。 這很好用。 但是,如果我在瀏覽器中保存我的登錄憑據並訪問該網站並看到字段已預先填充,則.val()函數似乎不會返回值。 如果我點擊任何鍵,則啟用登錄按鈕。 所以函數“初始化登錄狀態按鈕”似乎不起作用。 是否可以為jquery顯示預填充字段?

希望你理解我^^謝謝!

    ready: function() {
        var view = this;
         //setup subViews
        view.setupSubs();
         //Initialize state of login button
        view.onKey();
    },
    "onKey": function(event) {
        var view = this,
            nickname = view.$('#nickname').val(),
            password = view.$('#password').val();

        if (!nickname || !password || nickname.length === 0 || password.length < 8) {
            view.$(':submit').attr('disabled', 'disabled');
        } else {
            view.$(':submit').removeAttr('disabled');
        }
    },

NB這僅涵蓋Chrome。

我最近遇到了類似的水印控件問題。 Chrome中自動填充密碼輸入的“值”對於javascript顯示為空白。 我假設這是來自Google的某種安全插件。 所以,你不能在JavaScript中的價值,但你可以測試是否存在價值。

Chrome有一個名為-webkit-autofill的CSS選擇器細化。 您可以使用JQuery進行選擇。 這給了我們測試:

var hasHiddenValue = view.$('#password:-webkit-autofill').length > 0;

好吧,有可能通過JavaScript預先填充網站中的字段。 然后,您無法使用普通事件直接讀取此內容,因為文檔在加載后會被緩存,並且所有更改都不在此緩存中。

您應該嘗試使用在文檔的refresed版本上執行的“on”功能。

嘗試:

$(document).on( "keyup", "#nickname, #password", function(event) {

});

編輯:

onKey不存在,使用:“keydown”或“keyup”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM