26

Javascript で hiddenField の値を設定する方法がわかりません。誰かがこれを行う方法を教えてもらえますか?

Javascript:

document.getElementById('hdntxtbxTaksit').value = "";

HTML:

<asp:HiddenField ID="hdntxtbxTaksit" runat="server" Value="" Visible="false">   </asp:HiddenField>

エラー:「プロパティ \'value\' の値を取得できません: オブジェクトが null または未定義です」

4

9 に答える 9

38

ASP.Net 4.0 より前

クライアントID

マスターページを使用するページで生成されたクライアントIDを取得します。マスター ページは UserControl タイプであるため、独自の Id を持ち、ページを子コントロールとして扱い、 のようなプレフィックスを持つ別の ID を生成しますctrl_

これは<%= ControlName.ClientID %>、ページ内で使用することで解決でき、後で参照できる任意の文字列または JavaScript 変数に割り当てることができます。

var myHidden=document.getElementById('<%= hdntxtbxTaksit.ClientID %>');
  • マスター ページを使用する場合、Asp.net サーバー コントロール ID は異なります。

ASP.Net 4.0 +

ClientIDMode プロパティ

このプロパティを使用して、ID の生成方法を制御します。あなたの場合、ページレベルでClientIDMode="static"を設定すると問題が解決します。同じことがコントロール レベルでも適用できます。

于 2012-11-19T13:41:35.227 に答える
15

asp:HiddenFieldなので:

<asp:HiddenField runat="server" ID="hfProduct" ClientIDMode="Static" />

js コード:

$("#hfProduct").val("test")

および背後にあるコード:

hfProduct.Value.ToString();
于 2015-07-16T09:50:39.630 に答える
4
  • まず、隠しフィールドを適切に作成する必要があります

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

  • 次に、隠しフィールドに値を設定する必要があります

    Jqueryを使用していない場合は、使用する必要があります。

    document.getElementById("<%= hdntxtbxTaksit.ClientID %>").value = "test";

    Jqueryを使用している場合は、次のようになります。

    $("#<%= hdntxtbxTaksit.ClientID %>").val("test");

于 2014-09-23T14:11:32.057 に答える
3
document.getElementById('<%=hdntxtbxTaksit.ClientID%>').value

サーバーに設定した ID は、クライアント ID とは異なるサーバー ID です。

于 2012-11-19T13:41:27.127 に答える
1

フィールドを としてマークしたため、JavaScript コードではリテラル ID 文字列ではClientIDなくrunat="server"

たとえば、JavaScript コードが (別の JavaScript ファイルではなく) aspx ファイルにある場合:

var val = document.getElementById('<%=hdntxtbxTaksit.ClientID%>').value;

ASP.Net によってレンダリングされない別の JavaScript ファイルにある場合は、クラスなど別の方法で見つける必要があります。

于 2012-11-19T13:41:25.513 に答える
0

HiddenField の ClientID を使用することをお勧めします。最初にコードビハインドから任意の Javascript 変数にクライアント ID を登録し、それをクライアントサイド スクリプトで使用します。なので:

.cs ファイル コード:

ClientScript.RegisterStartupScript(this.GetType(), "clientids", "var hdntxtbxTaksit=" + hdntxtbxTaksit.ClientID, true);

次に、JS で次のコードを使用します。

document.getElementById(hdntxtbxTaksit).value= ""; 
于 2013-06-13T13:34:54.890 に答える
0

次のようにJavascriptの値を設定してみてくださいdocument.getElementByName('hdntxtbxTaksit').value = '0';

于 2013-08-02T18:46:54.007 に答える