Wir haben eine ausgereifte Anwendung, in der sensible Daten verarbeitet werden und die auf mehrere hundert Seiten und Steuerelemente angewachsen ist. Es ist nun erforderlich, die Autovervollständigung für alle Formulare und Textfelder in der gesamten Anwendung auf "Aus" zu setzen. Ich glaube nicht, dass es eine globale web.config-Einstellung gibt, die dies ermöglichen würde. Mein erster Gedanke war, eine PageBase-Klasse (von der alle Seiten erben) zu verwenden, um dynamisch alle Formular- und Textbox-Steuerelemente zu finden und dynamisch das Attribut autocomplete="off" hinzuzufügen. Erscheint dies sinnvoll oder gibt es einen besseren Weg? Vielen Dank für alle Empfehlungen.
Antworten
Zu viele Anzeigen?Wenn alle Ihre Seiten eine Masterseite haben, dann versuchen Sie, die automatische Vervollständigung für Eingabefelder mit Jquery auf der Masterseite zu deaktivieren.
Sie können den folgenden Code in die Masterseite einfügen
$(document).ready(function () { $("input").attr("autocomplete", "off"); });
Versuchen Sie immer, eine BasePage
y inherits
alle Seiten daraus, es ist ein good practice
und es hilft später sehr, wenn das Projekt allmählich zu einem monster
..... und in diesem Szenario, wenn Sie es bereits getan haben, dann ... ist es one line code
...
public abstract class BasePage : Page
{
protected override void OnLoad(EventArgs e)
{
//Handling autocomplete issue generically
if (this.Form != null)
{
this.Form.Attributes.Add("autocomplete", "off");
}
base.OnLoad(e);
}
}
Versuchen Sie, autocomplete="off" nur zu Ihrem Formularelement hinzuzufügen und nicht zu jedem einzelnen Steuerelement. Zumindest im IE sollte dies die Funktion für alle Steuerelemente innerhalb des Formulars deaktivieren.
Ja, wenn Sie aus irgendeinem Grund nicht in der Lage sind, eine Musterseite zu verwenden, ist die Vererbung ein vernünftiger Weg, um zu erreichen, was Sie wollen.
Wenn Sie MVC verwenden, dann unter Views/Shared, fügen Sie es zu Ihrem _Layout.csstml Wie Pavan sagte:
$(document).ready(function ()
{
$("input").attr("autocomplete", "off");
});
Wenn Sie möchten, dass einige Kontrollen funktionieren und andere nicht, dann verwenden Sie:
$("#myInputboxName").attr("autocomplete", "off");
myInputboxName ist der Name, den Sie der id des Steuerelements gegeben haben.