2012-02-03 112 views
2

這是一個很常見的問題,但我在其他人帖子中找到的解決方案要麼與特定的瀏覽器(主要是Firefox)或不正確的名稱使用有關(name =「U12-678132- 34「)瀏覽器不會提示保存密碼

我的問題與瀏覽器,然後Firefox(火狐瀏覽器的所有方式的作品)。

我使用的形式是非常標準的HTML表單,但它的提交是用javascript(jQuery AJAX)完成的。

Firefox的所有方法都要求記住密碼(如果它是新用戶)並重新填寫表單,如果您再次登錄同一頁面。但是當談到Chrome/Safari/IE8-9時,如果表單是用javascript提交的,他們從不要求保存密碼。 (順便說一下,我沒有檢查瀏覽器是否有 - 從來沒有記住密碼打開)

當您點擊表單中的鏈接或如果您只需點擊鍵盤上的「ENTER」按鈕,那麼它啓動$ .submit()方法。

是否存在提交需要發生的具體方式,以便瀏覽器會請求保存像Firefox這樣的密碼呢?還是有辦法至少告訴像Chrome/IE這樣的特定瀏覽器來強制這種類型的請求?

形式例如:

<form class="loginform" method="post" action=""> 
    <div class="inputfield"> 
     <input name="email" type="text" class="emailaddress inputclass" value="" title="Email Address" /> 
    </div>  
    <div class="inputfield"> 
     <input name="password" type="password" class="password inputclass" title="Password" value="" /> 
    </div>    
    <div class="submit"> 
     <a href="javascript:void(0);" class="signinbutton"></a> 
     <div class="checking"> 
      <img src="/preloaders/login-preloader.png"/> 
     </div> 
     <input type="submit" name="submit" value="submit" style="display:none"/> 
    </div> 
</form> 
+0

我們添加了用於確認不正確的登錄嘗試或多次登錄嘗試和密碼重置的驗證。我知道,使這個表單提交沒有javascript將解決這個問題,但我們會犧牲美學,這不是這個項目的選項。 – Alex 2012-02-03 19:40:56

回答

3

這是瀏覽器的行爲,並不能真正改變。 Firefox可能是「聰明的」,可以提供保存密碼而不需要實際提交表單,但是即使按鈕做了不同的事情,表單中的button也會觸發該選項。所以在我看來,這對Firefox來說是一件壞事(我曾經在Firefox提交表單時遇到很多問題,即使它不應該)。

如果您確實想要顯示保存密碼選項,請使用iframe並提交給iframe,而不是使用AJAX。然後,您可以使用iframe中的AJAX來保留舊的行爲。

+0

嗯有趣..我會嘗試到目前爲止最好的建議:) – Alex 2012-02-03 19:44:43

+1

似乎提交給iframe不再適用於最近的瀏覽器。我還沒找到其他方法。 http://dev.vaadin.com/ticket/8405 – Oliv 2012-05-09 07:25:32

0

附加點擊事件,您的提交按鈕

$('#id_of_submit').click(function() { 
    /your ajax logic 
    return false; 
}); 

,在鏈路

$('#id_of_your_link').click(function() { 
    $('#id_of_submit').click(); 
}); 

這將這樣的伎倆。

+0

這將使瀏覽器記住用戶名和密碼?真的嗎? – ManseUK 2012-02-03 18:46:37

+0

當按下表單上的提交按鈕時,Firefox會將表單元素識別爲密碼和用戶名,它將提供保存。我有很好的鏈接和隱藏的提交按鈕的形式。 – 2012-02-03 18:49:18

+0

我的表單與.click和.submit以及Firefox一起工作,就像我在上述問題中所說的那樣工作正常,但不會在其他瀏覽器上工作 – Alex 2012-02-03 19:42:37

0

作爲烏爾做一個AJAX後,則─

  1. 取出<form>標籤

  2. ,而不是<input type="submit",使用按鈕

  3. 取現場值& AJAX後置按鈕點擊事件

它可能會伎倆。

+0

嘗試過但仍然是相同的結果 – Alex 2012-02-03 19:43:44

相關問題