Ich habe zwei Seiten. Auf der ersten Seite öffne ich ein Modal mit einer Querzeichenfolge, die den Wert eines Clientnamens enthält. Ich benutze dies, um ein verstecktes Feld für die geöffnete Modalität festzulegen.
Ich brauche ein Textfeld für das neue Modal, um den Wert anzuzeigen, der vom ersten Bildschirm aus gesendet wurde.
Ich habe versucht, den Wert mit Hilfe von:
var hv = $('hidClientField').val();`
Das scheint aber nicht zu funktionieren.
Das ist mein verstecktes Feld:
<asp:HiddenField ID="hidClientName" runat="server" />`
Ich habe es im Code hinter dem PageLoad so gesetzt:
hidClientName.Value = Request.QueryString["Client_Name"] ?? "";`
Alle Ideen werden sehr geschätzt.
Versuchen Sie eine der folgenden Möglichkeiten
Wenn sich ASP.Net-Steuerelement und Javascript beide auf derselben Seite befinden, verwenden Sie
var hv = $("#"+ '<%= hidClientField.ClientID %>').val();
Wenn Sie von einer JS-Datei auf das Steuerelement zugreifen möchten, dann
// 'id$' will cause jQuery to search control whose ID ends with 'hidClientField'
var hv = $('input[id$=hidClientField]').val();
Sie können den Klassennamenselektor verwenden, um dies zu erreichen. Check out this ähnliche Frage.
In asp.net ist die Steuerelement-ID fehlerhaft. Aus diesem Grund funktioniert Ihr Code nicht.
Hoffe, das funktioniert für dich.
Sie haben den #
in Ihrem Selector vergessen, um nach ID auszuwählen:
var hv = $('#hidClientField').val();
Obwohl asp.net eine ID generiert, die auf den Benennungscontainern basiert, erhalten Sie eine ID wie ctl1$hidClientField
. Sie können dann den Selektor "Attribut endet mit" verwenden:
var hv = $('input[id$=hidClientField]').val();
Überprüfen Sie die Dokumentation zu jQuery-Selektoren.
ID-Wahlschalter verwenden.
var hv = $('#hidClientName').val();
Oder
var hv = $('#<%=hidClientName.ClientID%>').val();
Weil jQuery nichts über asp:HiddenField
weiß. Es sieht in der HTML-Struktur, wo Sie <input type="hidden" name="ctl00$cph_main$HiddenFieldServerDateTime" id="ctl00_cph_main_HiddenFieldServerDateTime" ...
haben. Es gibt also keine Eingabe mit ID= HiddenFieldServerDateTime
. Es gibt einige Möglichkeiten, dies zu überwinden:
Verwenden Sie einen CSS-Selektor:
<asp:HiddenField ID="HiddenFieldServerDateTime"
runat="server"
CssClass="SomeStyle" />
mit dem folgenden Wahlschalter: var serverDateTime = $(".SomeStyle").val();
</ del>
CssClass
ist keine verfügbare Klasse in der HiddenField
-Klasse (und sie hat keine Attributes
collection, daher können Sie sie nicht manuell hinzufügen.
Verwenden Sie die ClientID
-Eigenschaft:
var serverDateTime = $("#<%= HiddenFieldServerDateTime.ClientID %>").val();
Wickeln Sie das ausgeblendete Feld in etwas, das Sie auswählen können:
<div class="date-time-wrap">
<asp:HiddenField ID="..." runat="server" />
</div>
var serverDateTime = $('.date-time-wrap input[type=hidden]').val();
Wenn Sie Asp.net-Steuerelemente verwenden, werden die Steuerelement-IDs vom Server geändert. Es fügt der ID eine Reihe von fremden Kontrollbaum-Hierarchieinformationen hinzu. Sie müssen referenzieren, was diese tatsächliche ID ist, die gerendert wird. Diese Eigenschaft steht in der Eigenschaft ClientID des Steuerelements (hfUser.ClientID) zur Verfügung. Sie können auch auf eine andere, umständlichere Weise auf Ihr Steuerelement zugreifen Kinder, um Ihre Kontrolle zu finden.
Wenn Sie das asp.net HiddenField-Steuerelement nicht verwenden müssen, versuchen Sie es einfach mit einer regulären alten HTML-Eingabe.
sie können auf diese Weise tun
var hval = $('#<%= hdMarkupPercentage.ClientID%>').val();
Fügen Sie in Ihrem Code ClientIDMode = "Static" ein.
var obj = $('#hidClientName').val();
<asp:HiddenField ID="hidClientName" ClientIDMode="Static" runat="server" />
Oder
var obj = $('#<%=hidClientName.ClientID%>').val();
<asp:HiddenField ID="hidClientName" runat="server" />