2010-11-07 17 views
9

Sto utilizzando il seguente modulo di accesso nella mia app Web. Funziona perfettamente con IE7, FF3.6 e Chrome7.0. Tranne il fatto che Chrome non sembra riconoscere questo modulo come un modulo di accesso e quindi non mi offre di salvare il nome utente/password. Sia FF che IE mi offrono di ricordare nome utente/password.perché chrome non riconosce questo modulo di accesso?

Ecco il modulo:

<form name="login_form" id="login_form" action="" method="POST" onsubmit="javascript:handleFunction('action_login', document.getElementById('user_name_id').value, document.getElementById('password_id').value); return false;"> 
    <div class="login_line">name<input name="user_name" id="user_name_id" size="16" maxlength="16" value= "" type="text"></div> 
    <div class="login_line">password<input name="password" id="password_id" size="16" maxlength="16" type="password"></div> 
    <div class="login_line"><input type=submit class="icon icon_accept" value="login"></div> 
</form> <!-- login_form --> 

EDIT: Io uso jquery (non sempre come si può vedere), QTIP (per mostrare eventuali errori d'accesso) e xajax (come framework Ajax). Il handleFunction è il seguente:

function handleFunction (functionName) 
{ 
    // remove any static qtip from screen 
    if ($('#qtip_close_button').length) 
    { 
     // click on close button of qtip 
     $('#qtip_close_button').click(); 
    } 

    // remove the first argument from the arguments list 
    var argArray = $.makeArray(arguments).slice(1); 

    xajax.request({ xjxfun : functionName }, { parameters : argArray }); 
} 

Grazie per qualsiasi consiglio!

A proposito: ho controllato se il mio ospite si trova nell'elenco delle eccezioni della password salvata di Chrome. Non è.

risposta

4

Credo che sia perché il modulo non viene effettivamente "inviato". Se controlli l'attributo onsubmit, puoi vedere che restituisce false alla fine, che annulla l'invio.

+0

quando rimuovo "return false", di accesso non riesce (solo provato per essere sicuri) – jzp74

+1

Sì, non funziona quando si rimuove restituire false. Dovrai riscrivere il tuo codice. Chrome non offre il salvataggio delle password da moduli che non vengono "inviati" come funzionalità di sicurezza. Se vuoi che la funzione Salva password funzioni, dovrai abbandonare tutto il fantastico login AJAX. – Kranu

+2

@Kranu qual è il problema di sicurezza che hai citato? Non penso che questa sia una caratteristica di sicurezza; è solo un altro trucchetto del browser che dobbiamo affrontare. –

2

si deve presentare il modulo due volte:

  1. uno con la convalida JS
  2. e dopo quella forma POST pianura.

Here is the solution

+0

Chrome 46 ha risolto il suo comportamento errato - non sono più necessari soluzioni alternative. Vedi https://stackoverflow.com/a/33113374/810109 – mkurz

Problemi correlati