2016-08-04 46 views
2

對於我的登錄表單firefox保存但鉻不提示「保存密碼」框。我嘗試了添加autocomplete =「on」,但它不起作用。任何人都可以告訴我答案。我不想使用任何擴展。我的代碼如下。Firefox保存密碼,但鉻不保存登錄表單的密碼

<form spellcheck="false" autocomplete="on" id="login-form" action="/user/login/do-login" method="post"> 
       <div class="separator-bar"></div> 
       <div class="credentials-container"> 
        <div class="username-container"> 
         <div class="label">Email/Username: </div> 
         <div class="field"> 
          <input class="wx-input" type="text" name="<?php echo $this->escape(App_Api_User::ARG_USERNAME)?>" value="<?php if(isset($this->username)) {echo $this->username;}?>" spellcheck="false"/> 
         </div> 
        </div> 
        <div class="password-container"> 
         <div class="label">password: </div> 
         <div class="field"> 
          <input class="wx-input" type="password" name="<?php echo $this->escape(App_Api_User::ARG_PASSWORD)?>"/> 
         </div> 
        </div>  
       </div> 

       <div class="separator-bar bottom"></div> 
       <div class="forgot-password-container"> 
        <div class="text">forgot password: </div> 
        <div class="password-page button"><a class="loginForgotPassword" href="#">CLICK HERE</a></div> 
       </div> 

       <div class="submit-container"> 
        <input class="login button disabled" type="submit" name="submit" value="GO" /> 
       </div> 
       <div id="infoMessageContainer"> 

       </div> 

       <div class="general-error"></div> 

      </form> 

$('body').on('click', '.submit-container .login', function(e) { 
      if ($(this).hasClass('disabled')) { 
       e.preventDefault(); 
       e.stopPropagation(); 
      }else{ 
       var self = this; 
       self.submit(); 
      } 
     }); 

_success: function() 
    { 
     window.location.href = '/user';  
    } 

回答

0

我做了很多改變,然後最終使用下面的代碼塊。 希望它能幫助別人。您需要使用此代碼提交表單。

 var winNav = window.navigator, 
     isIOSChrome = winNav.userAgent.match("CriOS"); 
     var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; 
     //Use below if statement, if you want to run only in chrome 
     if(isChrome || isIOSChrome){ 
      $('#login-form').submit(function() { 
       if(-1 !== this.action.indexOf('/login')) { 
        var jForm = $(this); 
        $.post(this.action, $(this).serialize(), function (data) { 
         if (data.success == true) { 
          jForm[0].action = '/user'; 
          jForm.submit(); 
         } 
        }); 
        return false; 
       } 
      }); 
     } 
1

所有瀏覽器都使用啓發式知道何時保存密碼。我熟悉Firefox和Chrome。他們使用的啓發式似乎是:

  • 形式必須有一個密碼字段
  • 假設密碼字段之前是用戶名
  • 只有那些兩個輸入字段保存的文本輸入。當你填寫一個帶有兩個密碼字段的表單時,Firefox會提示你 它能記住你更改的密碼。

這裏的事情的清單,我通常看到打破這些算法:使用自動完成

  • 網站= OFF(特別請求 瀏覽器不記得密碼)
  • 分離登錄到多個頁面在一個頁面上輸入用戶名並在下一個頁面輸入密碼。
  • 使用JavaScript這些字段的內容到隱藏 領域複製在一個隱藏的表單,然後提交隱藏的形式,而 比可見光的形式
  • 需要兩個以上領域要填寫如 用戶名, SSN和密碼 用戶名,密碼和PIN
  • 更改用戶名和密碼字段 的名稱定期(導致Firefox不再能夠填補 密碼,即使被記住)。
+0

我的密碼保存問題與鉻瀏覽器。我已經驗證了所有上述規則,但它不適用於我。請任何其他解決方案。 – Abhijit

+0

我有同樣的問題,有人請幫忙。 –

+0

@dave大師,我已經發布了這個問題的答案。 – Abhijit