webentwicklung-frage-antwort-db.com.de

Holen Sie sich den Wert eines Punktes: HiddenField mit jQuery

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.

23
Melanie

Versuchen Sie eine der folgenden Möglichkeiten

  1. Wenn sich ASP.Net-Steuerelement und Javascript beide auf derselben Seite befinden, verwenden Sie

    var hv = $("#"+ '<%= hidClientField.ClientID %>').val();
    
  2. 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();
    
  3. 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.

48
Amar Palsapure

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.

7
Didier Ghys

ID-Wahlschalter verwenden.

var hv = $('#hidClientName').val();

Oder

var hv = $('#<%=hidClientName.ClientID%>').val();
5
adatapost

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();
    
3
Mujassir Nasir

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.

0
Mujassir Nasir

sie können auf diese Weise tun

var hval = $('#<%= hdMarkupPercentage.ClientID%>').val();
0
Ashfaq Shaikh

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" />

0
AYK