29

2ページあります。最初のページから、クライアント名の値を保持するクエリ文字列を含むモーダルを開きます。次に、これを使用して、開いたモーダルに隠しフィールドを設定します。

最初の画面から送信された値を表示するには、新しいモーダルに TextBox が必要です。

私は次を使用して値を取得しようとしました:

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

しかし、これはうまくいかないようです。

これは私の隠しフィールドです:

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

次のように、Page_Load のコード ビハインドで設定します。

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

どんなアイデアでも大歓迎です。

4

8 に答える 8

56

次のいずれかを試してください

  1. ASP.Net コントロールと JavaScript の両方が同じページにある場合は、

    var hv = $("#"+ '<%= hidClientField.ClientID %>').val();
    
  2. JS ファイルからコントロールにアクセスする場合は、

    // 'id$' will cause jQuery to search control whose ID ends with 'hidClientField'
    var hv = $('input[id$=hidClientField]').val();
    
  3. クラス名セレクターを使用して同じことを実現できます。この同様の質問を確認してください。

asp.net では、コントロール ID が破損しています。このため、コードが機能していません。

これがうまくいくことを願っています。

于 2012-01-18T10:11:45.340 に答える
7

#セレクターで を ID で選択するのを忘れました:

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

asp.net は名前付けコンテナーに基づいて ID を生成しますが、最終的に のような ID になる可能性がありますctl1$hidClientField。次に、「属性が次で終わる」セレクターを使用できます。

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

jQueryセレクターに関するドキュメントを確認してください

于 2012-01-18T10:10:48.903 に答える
6

ID セレクターを使用します。

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

または

var hv = $('#<%=hidClientName.ClientID%>').val();
于 2012-01-18T10:11:11.743 に答える
4

jQuery は について何も知らないからasp:HiddenFieldです。持っているHTML構造を調べます<input type="hidden" name="ctl00$cph_main$HiddenFieldServerDateTime" id="ctl00_cph_main_HiddenFieldServerDateTime" ...。したがって、との入力はありませんID= HiddenFieldServerDateTime。これを克服するにはいくつかの方法があります。

  • CSS セレクターを使用します。

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

    次のセレクターを使用します。var serverDateTime = $(".SomeStyle").val();

    CssClassクラスで使用可能なクラスではありHiddenFieldません (Attributesコレクションがないため、手動で追加することはできません)。

  • 使用ClientIDプロパティ:

    var serverDateTime = $("#<%= HiddenFieldServerDateTime.ClientID %>").val();
    
  • 非表示フィールドを選択可能なものでラップします。

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

     

    var serverDateTime = $('.date-time-wrap input[type=hidden]').val();
    
于 2012-01-18T10:10:51.913 に答える
0

Asp.net コントロールを使用している場合、サーバーはコントロール ID をマングルします。無関係なコントロール ツリー階層情報を ID に追加します。コントロールの ClientID プロパティ (hfUser.ClientID) で利用できる、レンダリングされている実際の ID を参照するか、コントロールの親を見つけてから検索するなど、別のより遠回りの方法でコントロールにアクセスする必要があります。子供たちはあなたのコントロールを見つけます。

asp.net HiddenField コントロールを使用する必要がない場合は、通常の古い html 入力を使用してみてください。

于 2012-01-18T10:12:10.167 に答える
0

あなたはこのようにすることができます

var hval = $('#<%= hdMarkupPercentage.ClientID%>').val();
于 2012-01-18T10:58:25.730 に答える
-1

Please try this code.

 var hv = $("#<%= hidClientField.ClientID %>").val();
于 2012-01-18T10:13:39.557 に答える