4

マスター ページから派生したページがあります。このページには、隠しフィールド ("hfUser") があります。この「hfUser」コントロールにアクセスし、JQuery を使用してその値を取得/設定するにはどうすればよいですか? 私はこれの変種を試しました:

$(document).ready(function() {
    var test = $("#hfUser").val();
    alert(test);

});

ただし、テスト = 未定義。セレクターが間違っていると思いますが、asp 隠しフィールドを取得する方法がわかりません。何か案は?

ありがとう

4

4 に答える 4

6

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

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

于 2010-01-07T22:33:27.127 に答える
3

ASP は ID をマングルするのが好きです。うさぎの穴 (または入れ子になっているコントロール) を下に行くほど、ASP がコントロール ID に追加されます。マスター ページを追加すると、さらにレベルが上がります。

(runat プロパティ セットを使用して) サーバー側コントロールにアクセスする別の方法は、jQuery セレクターで角かっこを使用することです。

このような:

$("[id$='hidImgSource']").val()

これにより、ID の名前の末尾に「hidImgSource」が含まれる要素が選択されます。そのため、マングルされた ID が検出されます。

これは、その他のオプションを説明するjQuery Selectors ページへのリンクです。

于 2012-03-05T13:44:50.283 に答える
2

非表示フィールドがASP.NETコントロールの場合は、このブログ投稿をチェックして、ASP.NETコントロールのjQueryセレクターを支援してください。

http://www.foliotek.com/devblog/extending-jquery-to-select-asp-controls/

于 2010-01-07T22:36:29.127 に答える
0

次のようにします。

$(document).ready(function()
{
    var test = $("**#<%= hfUser.ClientID %>**").val();
    alert(test);
});
于 2011-11-16T06:08:54.610 に答える