2013-06-26 6 views
8

Non riesco a impostare il valore di un campo nascosto con jquery in asp .net.Asp .net campo nascosto non può impostare il valore con jquery

mio campo nascosto è dichiarato così:

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

Ed è così che ho impostato il valore:

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

Entrambi avvisi mostrano il giusto valore, ma quando ho prenderlo al server, è vuoto.

+2

tutto sembra ok su quel codice, per quanto riguarda il codice dietro a ? - forse c'è il problema? – Aristos

+0

Che aspetto ha il tuo side code del server quando stai recuperando il valore? – jlafay

+0

Accedo in questo modo: string.IsNullOrEmpty (hdnSelectedTicket.Value). E quando controlli il valore è una stringa vuota – Alecu

risposta

7

Si scopre che stavo mettendo il campo nascosto all'interno di un div che è stato utilizzato come modello per il dialogo jquery. Quando ho rimosso il campo nascosto dal div e lo ho posizionato altrove, ha funzionato.

+0

Grazie per aver postato questo. Questa era la risposta anche al mio problema! – Eric

3

A seconda di quando si legge il valore sul lato server, potrebbe non essere ancora aggiornato sul controllo - in sostanza se lo si sta facendo in un gestore di eventi change e il controllo che solleva l'evento change viene aggiornato prima del controllo nascosto, quindi chiamare hdnSelectedTicket.Value può ancora restituire il vecchio valore.

Il modo più semplice per aggirare questo problema è quello di truffare e farlo direttamente dalla collezione Forma:

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

Set ClientIDMode="Static" e quindi è possibile utilizzare $('#hdnSelectedTicket').val(ticketID); per impostare il valore in ASP campo nascosto

come

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

e

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