2014-01-16 94 views
3

只有當長度不爲0且用戶名和密碼不是空等等。這工作正常。但是,如果我將我的登錄憑據保存在瀏覽器中,並且訪問網站並查看字段已預填充,則.val()函數似乎不會返回值。如果我按任何鍵登錄按鈕啓用。所以函數「初始化登錄按鈕的狀態」似乎不起作用。預填充字段是否可見jquery?瀏覽器(chrome,firefox)jquery.val()不適用於自動填充的輸入字段(用戶名,密碼)

希望你能理解我^^ 謝謝!

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'); 
     } 
    }, 
+1

如果字段是用信息的高速緩存版本完成,因爲事件被觸發一次和js無法看到的變化會出現這種情況有很多很多的形式。 – Geo

回答

1

那麼,預先填寫websits中的字段可能是通過JavaScript進行的。 然後,您不能直接閱讀這與一個正常的事件,因爲文件被加載後,一旦它被加載和所有的變化不在這個緩存裏面。

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

嘗試:

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

}); 

編輯:

安其不存在,閹使用 「的keydown」 或 「KEYUP」。

+1

自動填充不會觸發這個事件,並且生活已經死了 –

+0

@Up:固定它到.on() - 我不知道現場對我來說一直工作得很好 – Steini

+1

但是什麼是onKey事件? –

5

N.B.這僅涵蓋Chrome。

我最近有一個類似的問題,與水印控制。 Chrome自動填充密碼輸入的「值」對javascript來說顯示爲空白。我假設這是來自Google的某種安全插件。所以你不能在javascript中獲得值,但你可以測試是否爲的值。

Chrome有一個名爲-webkit-autofill的CSS選擇器細化。您可以使用JQuery選擇此選項。這讓我們的測試:

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