2013-06-26 20 views
8

Nie mogę ustawić wartości ukrytego pola z jquery w asp .net.Ukryte pole Asp .net nie może ustawić wartości z jquery

Moje ukryte pole jest zadeklarowane tak:

<asp:HiddenField runat="server" ID="hdnSelectedTicket" /> 

I to jak ustawić wartość:

  alert(ticketID); 
      $('#<%=hdnSelectedTicket.ClientID %>').val(ticketID); 
      alert($('#<%=hdnSelectedTicket.ClientID %>').val()); 

obu alertów pokazać właściwą wartość, ale kiedy sprowadzić go na serwerze to jest pusty.

+2

wszystko wygląda ok na tym kodzie, co o kodzie za ? - może jest problem? – Aristos

+0

Jak wygląda kod po stronie serwera podczas pobierania wartości? – jlafay

+0

Uzyskuję do tego dostęp w następujący sposób: string.IsNullOrEmpty (hdnSelectedTicket.Value). A kiedy sprawdzimy wartość, to jest pusty ciąg znaków – Alecu

Odpowiedz

7

Okazuje się, że chowałem pole ukryte wewnątrz div, który został użyty jako model dla okna dialogowego jquery. Kiedy usunąłem ukryte pole z div i umieściłem je w innym miejscu, zadziałało.

+0

Dzięki za zamieszczenie tego. To była również odpowiedź na mój problem! – Eric

3

W zależności od tego, czy czytasz wartość po stronie serwera, może nie być jeszcze aktualizowana na kontrolerze - w zasadzie, jeśli robisz to w procedurze obsługi zdarzeń zmian, a formant, który podnosi zdarzenie zmiany, jest aktualizowany przed ukryta kontrola, a następnie wywołanie hdnSelectedTicket.Value może nadal zwracać starą wartość.

Najprostszym sposobem, aby ominąć ten problem jest oszukać i zrobić to prosto z kolekcji Kształt:

var ticketId = Request.Form[hdnSelectedTicket.UniqueID]; 
13

Set ClientIDMode="Static" a następnie można użyć $('#hdnSelectedTicket').val(ticketID); aby ustawić wartość w ASP pola ukrytego

jak

asp:HiddenField ID="hdnSelectedTicket" runat="server" ClientIDMode="Static" 

i

$('#hdnSelectedTicket').val(ticketID);