Browser die automatische Vervollständigung / gespeicherte Formular nicht in Ajax-Request arbeiten

StackOverflow https://stackoverflow.com/questions/1622628

Frage

Es ist wirklich schwer, die eine beliebige Kombination von Schlüsselwörtern in Suchmaschinen, um dies zu suchen, da sie von den meisten populären Entwickler verwendet eine benutzerdefinierte zur automatischen Vervollständigung von Ajax wollte.

Die meisten Entwickler Suche über die benutzerdefinierte Autovervollständigung bekommen von db von Ajax führen oder darüber, wie Browser die automatische Vervollständigung deaktivieren aus Sicherheitsgründen Grund oder sie wantted einen anderen Autocomplete-Extender zu verwenden.

Allerdings spreche ich nicht über die zur automatischen Vervollständigung. Ich Suche über einfache normalen Browser die automatische Vervollständigung oder Browser gespeicherte Formular entweder IE oder FF, die wie Drop-Down letzten Wahl beim Befüllen eines Textes in einem Textfeld fungiert.

Es ist einfach und normal, dass eine Form wie Benutzername und Passwort in einem Anmeldeformular ausfüllen. Nach der vorgelegten Form (die Formulardaten post) Browser, um das Autovervollständigen oder ein Ereignis in FF sparen fragt mit dem Passwort speichern zusammen.

Nun, denken Sie an die Login über Ajax vorgelegt. Die Daten bilden nicht automatisch von entweder IE oder FF einfach, da das Formular nicht per Post Methode gespeichert. Ich bin ziemlich sicher, dass es wegen der Ajax vs post-Methode ist.

CMS wie DotNetNuke auf diese Weise verwenden und es ist schwierig, mich wirklich für 5 Benutzer-Login für Entwicklungszwecke Benutzernamen und ein Passwort zu eingeben, wollen Ereignis I Benutzer ihre eigenen Formulardaten im Browser ohne individuelle oder Extender speichern lassen. Durch ein weiteres Beispiel kann der Benutzer dieselbe E-Mail sehen und verwenden Sie eine beliebige E-Mail-Formular auf Webseite oder Domain zu füllen.

Wie mit dieser umgehen? Haben Sie Vorschlag, welche Keywords besser geeignet ist, zu suchen?

CallMeLaNN

War es hilfreich?

Lösung

Ich habe das gleiche Problem. Ich konnte es für FireFox lösen, indem ein verstecktes iframe hinzufügen, die ich über JavaScript einreichen, bevor meine AJAX Post zu tun. Ich habe noch nichts gefunden, das in Chrome / IE funktioniert.

Andere Tipps

Ich habe mit dem gleichen Problem konfrontiert und ein wenig gesucht. Ich denke, die Lösung unten ist der bequemste Weg, dies zu lösen, wenn Sie eine Login-Seite haben. Wenn wir die Anmeldung eingereicht über Ajax, keine der Browser erinnern oder Angebot autocomplate Funktion für Benutzernamen und das Passwort-Feld zusätzlich bitten, daran zu erinnern, die Anmeldeinformationen berücksichtigen. Aber wenn Sie die JavaScript-Funktion einreichen verwenden (Wahrscheinlich ist es nicht kompatibel mit älteren Versionen von Browsern), die alle der Browser bietet den Benutzernamen und das Passwort außer IE zu speichern. Aber ich habe eine andere Javascript heikel für IE gefunden, um es Benutzernamen und ein Passwort speichern zu machen bieten.

In meiner Login-Seite, habe ich die Benutzername und das Passwort behandelt und sie serverseitig durch Ajax-Request senden und wenn die Anmeldung erfolgreich ist, legte ich die Form durch das Verfahren unter ansonsten eine Warnung an den Benutzer gezeigt worden war, dass die Anmeldung fehlgeschlagen wurde.

Überprüfen Sie bitte folgenden Link:

  

[EDIT]: Link ist gebrochen

Es gibt eine feste Seite über dieses Thema in der Seite verlinkt sind, kann ich einen anderen Link geben Sie nicht wegen meiner guten Ruf. Bitte suchen Sie nach dem Zitat weiter unten auf der Seite:

  

Sehen Sie in der festen Seite.

Natürlich ist dieser Ansatz nicht paßt, wenn Sie einen Login-Bereich in der Standardseite, weil des Formulars aus. Dies bewirkt, dass die Seite Flimmern. Ich frage mich, ob jemand eine Ahnung davon hat?

Hier finden Sie einige unaufdringliche js jQuery-Code, der ein Formular einreichen wird sowohl über Ajax ($ .post-Methode) zu einem echten Backend-Skript und auch ein Dummy-Skript über einen iFrame, so dass der Browser die eingereichten Daten für die spätere automatische Vervollständigung speichern .

Das funktioniert großartig unter Chrom. Jedes Feedback ist mehr als willkommen!

var  formframesindex = 0;
function onSubmitAjax(evt){
    var $form = $(this);
    var framesubmitting = $form.hasClass('framesubmitting');
    var action = $form.attr('action');
    var original_action = action;

    if(!framesubmitting){
        $.post(action,$form.serialize()+"&ajax=1", function(responseText,message,request){
            formResponseHandler(responseText);
        }, "json");


        formframesindex++;
        var formframe = $("<iframe name='formframe_id_"+(formframesindex)+"' id='formframe_id_"+(formframesindex)+"' class='formframe' src='/fakeformreceiver.php'></iframe>");
        $('body').append(formframe);
        var target = $form.attr('target');
        $form.data('originaltarget',target);
        $form.data('originalaction',original_action);
        $form.attr('target','formframe_id_'+formframesindex);
        $form.attr('action','/fakeformreceiver.php');
        $form.addClass('framesubmitting');
        $form.submit();

    } else {
        var current_target = $form.attr('target');
        var original_action = $form.data('originalaction');
        var original_target = $form.data('originaltarget');
        var $frame = $('#'+current_target);
        setTimeout(function(){
            if($frame && $frame.length){
                $frame.remove();
            }
            $form.attr('action',original_action);
            $form.attr('target',original_target);
            $form.removeClass('framesubmitting');
        },100);
    }
    return framesubmitting;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top