korrekte oder effiziente Art des Zugriffs auf DOM-Objekte in ASPX-Seiten
-
29-09-2020 - |
Frage
Ich möchte den Wert des Textfelds erhalten, das ein Benutzer eingibt.Unten finden Sie das Code-Snippet der ASPX-Seite :
<asp:TextBox id="txtUserName" runat="server" />
Welches ist nun der beste Weg, um auf das DOM-Objekt auf der ASPX-Seite zuzugreifen
1.
<script type="text/javascript">
var value= document.getElementById(<%= txtUserName.ClientID %>).value;
alert(value);
</script>
2.
<script type="text/javascript">
var value= document.getElementById("txtUserName").value;
alert(value);
</script>
Lösung
SharePoint 2013 für Unternehmen/SharePoint Online
In .NET Framework 4 wurde eingeführt ClientIDMode Eigenschaft das gibt an, wie ASP.NET erzeugt die ClientID
für ein Steuerelement, auf das im Client-Skript zugegriffen werden kann.
Zusammenfassend lässt sich sagen, dass SharePoint 2013 auf .NET Framework 4 abzielt, ClientIDMode
könnte verwendet werden, um den Zugriff auf die Steuerung auf der Clientseite zu vereinfachen, wie unten gezeigt:
Beispiel:
<asp:TextBox id="boxUserName" runat="server" ClientIDMode="Static" />
JavaScript:
var boxUserName = document.getElementById("boxUserName")
SharePoint 2010 und frühere Versionen
Vorraussetzungen: jQuery-Bibliothek wird verwendet, das ein leistungsstarkes Set bietet von Werkzeugen zum Abgleichen einer Reihe von Elementen in einem Dokument.
Möglichkeit 1
Verwenden Sie den Selektor, um beispielsweise ein Element anhand der ID zu finden:
var quickLaunch = $('[id$=V4QuickLaunchMenu]'); // find element with id which ends with the text 'V4QuickLaunchMenu'
Möglichkeit 2
Verwenden CssClass
um beispielsweise eine Elementklasse anzugeben:
<asp:TextBox id="boxUserName" runat="server" CssClass="text-box" />
und dann benutze den Klassenselektor:
var boxUserName = $('input.text-box');
Verweis
Andere Tipps
Option 1 ist die richtige Art und Weise, um den Variablennamen nur zu ändern, um den Variablennamen nur an etwas anderes zu ändern, da es Javascript-Schlüsselwort ist
generasacodicetagpre.Aber ich benutze lieber jquery, der das Leben viel einfacher macht.Fügen Sie die JQuery-Datei in Ihrem ASPX oder Masterpage hinzu.Dann unter der Zeile
verwenden generasacodicetagpre.