asp jquery asp.net hiddenfield

jquery - asp hiddenfield set value javascript



Obtenga el valor de un asp: HiddenField usando jQuery (8)

Incluya ClientIDMode = "Static" en su código.

var obj = $(''#hidClientName'').val(); <asp:HiddenField ID="hidClientName" ClientIDMode="Static" runat="server" />

O

var obj = $(''#<%=hidClientName.ClientID%>'').val(); <asp:HiddenField ID="hidClientName" runat="server" />

Tengo dos páginas. Desde la primera página, abro un modal con una cadena de consulta que contiene ese valor de un nombre de cliente. Luego uso esto para establecer un campo oculto en el modal que se abrió.

Necesito un TextBox en el nuevo modal para mostrar el valor que se envió desde la primera pantalla.

He intentado obtener el valor utilizando:

var hv = $(''hidClientField'').val();`

Pero esto no parece funcionar.

Este es mi campo oculto:

<asp:HiddenField ID="hidClientName" runat="server" />`

Lo puse en el código que está detrás de la carga de página como esta:

hidClientName.Value = Request.QueryString["Client_Name"] ?? "";`

Cualquier idea será muy apreciada.


Olvidó el # en su selector para seleccionar por ID:

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

Aunque asp.net genera un ID basado en los contenedores de nombres, por lo que podría terminar con un ID como ctl1$hidClientField . A continuación, puede utilizar el selector de "atributo termina con":

var hv = $(''input[id$=hidClientField]'').val();

Consulte la documentación sobre los selectores jQuery.


Por favor intente este código.

var hv = $("#<%= hidClientField.ClientID %>").val();


Porque jQuery no sabe nada de asp:HiddenField . Busca en la estructura HTML donde tiene <input type="hidden" name="ctl00$cph_main$HiddenFieldServerDateTime" id="ctl00_cph_main_HiddenFieldServerDateTime" ... Así que no hay entrada con ID= HiddenFieldServerDateTime . Hay algunas maneras de superar esto:

  • Utilice un selector css:

    <asp:HiddenField ID="HiddenFieldServerDateTime" runat="server" CssClass="SomeStyle" />

    con el siguiente selector: var serverDateTime = $(".SomeStyle").val();

    CssClass no es una clase disponible en la clase HiddenField (y no tiene una colección de Attributes , por lo que no puede agregarla manualmente).

  • Use la propiedad ClientID :

    var serverDateTime = $("#<%= HiddenFieldServerDateTime.ClientID %>").val();

  • Envuelve el campo oculto en algo que puedas seleccionar:

    <div class="date-time-wrap"> <asp:HiddenField ID="..." runat="server" /> </div>

    var serverDateTime = $(''.date-time-wrap input[type=hidden]'').val();


Prueba cualquiera de los siguientes

  1. Si el control de ASP.Net y javascript están ambos en la misma página, entonces use

    var hv = $("#"+ ''<%= hidClientField.ClientID %>'').val();

  2. Si desea acceder al control desde algún archivo JS, entonces

    // ''id$'' will cause jQuery to search control whose ID ends with ''hidClientField'' var hv = $(''input[id$=hidClientField]'').val();

  3. Puedes usar el selector de nombre de clase para lograr lo mismo. Echa un vistazo a this pregunta similar.

En asp.net, los controles id están destrozados. Debido a esto su código no funciona.

Espero que esto funcione para usted.


Si está utilizando los controles de Asp.net, el servidor modificará los identificadores de control. Agrega un montón de información de jerarquía de árbol de control extraña en el ID. Debe hacer referencia a qué se está procesando ese ID acutal, que está disponible con la propiedad ClientID en el control (hfUser.ClientID) o acceder a su control de una manera diferente, más amplia, como buscar el control primario, luego buscar a través de su niños para encontrar su control.

Si no tiene que usar el control HiddenField de asp.net, intente usar una entrada html antigua normal.


Utilice el selector de ID.

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

O

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


puedes hacer de esta manera

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