ho trovato una soluzione che funziona con il password manager di Firefox. A seconda del motivo per cui si sta caricando il modulo in modo dinamico, la mia soluzione potrebbe non essere d'aiuto. (Altro su quello sotto.)
Innanzitutto, inserire un modulo invisibile (ho utilizzato uno stile in linea di "display: none") nella pagina che utilizza lo stesso metodo e azione e contiene campi con gli stessi nomi. Si può mettere questo sotto il div che alla fine conterrà la vera e propria forma:
<div id="container"></div>
<div id="fake-form" style="display: none">
<form action="index.php" method="post">
<input type="text" name='nombre' class='nombre'/>
<input type="password" name='pass' class='pass' />
</form>
</div>
Poi, nel vostro JavaScript, dopo che il contenuto della forma reale è stato caricato, copiare i valori fuori dal modulo falso e metterli in quello reale:
<script type="text/javascript">
$(function() {
$("#container").load("/path/file.php?what=login_form", function() {
var fakeForm = $("#fake-form");
$("#nombre").val(fakeForm.find(".nombre").val());
$("#pass").val(fakeForm.find(".pass").val());
});
});
</script>
detto questo, se si sta andando attraverso questo molto sforzo di mettere un modulo nella pagina prima di caricare in modo dinamico la forma attuale, allora perché non solo rimuovere tale ultimo passo e hanno la modulo sulla pagina per cominciare? :-) Presumibilmente hai una buona ragione per farlo comunque. Forse il modulo proveniente dal server ha informazioni di stile uniche o messaggi di errore dinamici accanto ai campi o nomi di campi i18n?
Tuttavia, se il modulo che stai prelevando dal server ha un'azione che varia per utenti diversi, il mio trucco non funzionerà perché devi conoscere l'azione in anticipo quando crei il modulo nascosto.
Se questo è il caso, allora forse potresti provare il mio trucco in senso inverso e nascondere il "modulo reale" che carichi dal server e visualizzare il modulo falso all'utente. Il falso modulo potrebbe postare su un URL inesistente, ma potresti usare JavaScript per intercettare l'onsubmit del "modulo falso", copiare il nome utente e la password nella "forma reale" invisibile, invocare submit sul modulo reale, e restituire false per impedire che venga inviata l'inoltro del modulo originale.
Aggiornamento: Dopo averci pensato un po 'di più, non credo che la mia seconda soluzione avrebbe funzionato, perché i gestori di password quasi sicuramente associano il nome utente e la password con l'URL finale che in realtà invia i dati a, piuttosto che l'URL dell'azione iniziale nel modulo in cui si sarebbe inizialmente fingendo di inviare. Ad ogni modo, spero che la mia prima soluzione sia adeguata per quello che stai facendo.
Potresti pubblicare l'output HTML di ''/path/file.php? What = login_form''? –
Questo è un comportamento standard. E quindi è il motivo per cui usiamo i moduli di accesso generati dinamicamente, se vogliamo che l'utente non sia in grado di memorizzare il pw –
scusate, hai ragione, editing quesiton –