ASP.NET在Javascript中设置hiddenfield值

时间:2012-11-19 13:39:11

标签: c# javascript asp.net

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

使用Javascript:

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

HTML:

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

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

9 个答案:

答案 0 :(得分:30)

在ASP.Net 4.0之前

客户端ID

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

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

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

ASP.Net 4.0 +

ClientIDMode属性

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

答案 1 :(得分:5)

asp:HiddenField as:

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

js code:

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

和背后的代码:

hfProduct.Value.ToString();

答案 2 :(得分:3)

试试这段代码:

$('hdntxtbxTaksit').val('test');

答案 3 :(得分:2)

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

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

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

    如果您没有使用Jquery,则应使用它:

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

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

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

答案 4 :(得分:1)

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

您在服务器中设置的ID是服务器ID,它与客户端ID不同。

答案 5 :(得分:1)

我的理解是,如果您在初始页面加载期间设置controls.Visible = false,则不会在客户端响应中呈现它。我建议解决你的问题是

不要使用占位符,从场景判断,除了需要在服务器端动态添加控件之外,您不需要占位符。使用div,不使用runat=server。您始终可以使用css控制该div的可见性。 如果您需要稍后动态添加控件,请使用占位符,但不要设置visible = false。占位符无论如何都不会显示任何显示,使用css设置该占位符的可见性。以下是编程方式:

placeholderId.Attributes["style"] = "display:none";

无论如何,正如其他人所说,出现问题是因为一旦设置control.visible = false,它就不会在客户端响应中呈现。

答案 6 :(得分:0)

我怀疑您需要在JavaScript代码中使用ClientID而不是文字ID字符串,因为您已将字段标记为runat="server"

,例如,如果您的JavaScript代码在aspx文件中(不是单独的JavaScript文件):

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

如果它是在一个单独的JavaScript文件中,而不是由ASP.Net提供的,那么你必须以另一种方式找到它,比如按类。

答案 7 :(得分:0)

我建议你使用HiddenField的ClientID。首先在代码隐藏的任何Javascript变量中注册其客户端ID,然后在客户端脚本中使用它。为:

.cs文件代码:

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

然后在JS中使用以下代码:

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

答案 8 :(得分:0)

尝试按照document.getElementByName('hdntxtbxTaksit').value = '0';

设置Javascript值