ASP.NET在Javascript中设置hiddenfield值

ozk*_*ank 22 javascript c# asp.net

我不知道如何在Javascript中设置hiddenField的值.有人可以告诉我该怎么做吗?

使用Javascript:

document.getElementById('hdntxtbxTaksit').value = "";
Run Code Online (Sandbox Code Playgroud)

HTML:

<asp:HiddenField ID="hdntxtbxTaksit" runat="server" Value="" Visible="false">   </asp:HiddenField>
Run Code Online (Sandbox Code Playgroud)

错误:"无法获取属性值''的值:'对象为空或未定义"

Mur*_*san 31

在ASP.Net 4.0之前

客户端ID

获取在使用母版页的页面中生成的客户端ID.由于Master页面是UserControl类型,它将拥有自己的Id,它将页面视为Child控件,并生成一个带有前缀的不同id ctrl_.

这可以通过<%= ControlName.ClientID %>在页面中使用来解决,并且可以分配给任何字符串或稍后可以引用的javascript变量.

var myHidden=document.getElementById('<%= hdntxtbxTaksit.ClientID %>');
Run Code Online (Sandbox Code Playgroud)
  • 如果您使用母版页,Asp.net服务器控件ID将会有所不同.

ASP.Net 4.0 +

ClientIDMode属性

使用此属性可以控制您为自己生成ID的方式.对于您的案例设置,页面级别的ClientIDMode ="static"将解决问题.同样的事情也可以在控制水平上应用.

  • 如果您使用的是Asp.NET用户控件,则可以在默认页面上注册时声明ClientIDMode.这样你的整个页面都会有静态ID."真正的身份证" (2认同)

Gab*_*ito 6

  • 首先,您需要正确创建隐藏字段

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

  • 然后你需要为隐藏字段设置值

    如果您不使用Jquery,则应该使用它:

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

    如果您使用Jquery,则应该是这样的:

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


小智 6

asp:HiddenField 如:

<asp:HiddenField runat="server" ID="hfProduct" ClientIDMode="Static" />
Run Code Online (Sandbox Code Playgroud)

js代码:

$("#hfProduct").val("test")
Run Code Online (Sandbox Code Playgroud)

以及后面的代码:

hfProduct.Value.ToString();
Run Code Online (Sandbox Code Playgroud)