2013-06-26 10 views
8

asp.netでjqueryで非表示フィールドの値を設定できません。Asp .net hiddenフィールドはjqueryで値を設定できません

私の隠されたフィールドは、このように宣言されています

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

そして、これは私が値を設定する方法である:両方のアラートが正しい値を示すが、私は、サーバーでそれを、それをフェッチするとき

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

を空です。

+2

すべてのようにASPの隠しフィールドの値を設定する$('#hdnSelectedTicket').val(ticketID);を使用することができますが、コードについては、そのコードに何をOKに見えます後ろに ? - 多分問題がありますか? – Aristos

+0

値を取得しているときにサーバーサイドコードはどのように見えるのですか? – jlafay

+0

私はこのようにアクセスします:string.IsNullOrEmpty(hdnSelectedTicket.Value)。値を確認すると、空の文字列になります – Alecu

答えて

7

それは私がモデルとして使用されたdivの内側に隠しフィールドを入れていたことが判明:

この問題を回避する最も簡単な方法は、カンニングとFormコレクションからまっすぐそれを得ることですjqueryダイアログ用。 divから隠されたフィールドを削除し、別の場所に配置したとき、それは機能しました。

+0

これを送信していただきありがとうございます。これも私の問題に対する答えでした! – Eric

3

サーバー側の値を読み取っているときは、コントロールでまだ更新されていない可能性があります。変更イベントハンドラで変更を行っていて、変更イベントを発生させるコントロールがhdnSelectedTicket.Valueを呼び出しても古い値を返すことができます。

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

設定ClientIDMode="Static"、その後、あなたが

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

$('#hdnSelectedTicket').val(ticketID); 
関連する問題