与在Javascript中获取asp控件的ClientID相关的问题

时间:2014-05-12 07:46:05

标签: c# javascript asp.net

我有asp.net webApplication有asp控件。

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

要在Javascript中访问上述控件,我使用了$('#ContentPlaceHolder1_hdTime').val('AM');

它在Mozila Firefox中运行良好,但在InternetExplorer中它需要     $('#ctl00_ContentPlaceHolder1_hdTime').val('AM');

我也试过

$('#<%= hdTime.ClientID %>')

但上面的syntext仅适用于.aspx页面,但是当我使用javascript.js文件时,它找不到$('#<%= hdTime.ClientID %>')

所以如何访问.js文件中的asp控件?

由于

3 个答案:

答案 0 :(得分:2)

您可以为控件设置Clientidmode="static" ..

<asp:HiddenField ID="hdTime" runat="server" Clientidmode="static"/>

<强>使用Javascript:

//在javascript中访问控件

var abc=document.getelementbyid('hdTime').value;

答案 1 :(得分:1)

尝试使用静态客户端ID:

http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode(v=vs.110).aspx

此问题是因为webforms生成的ID是动态的,因此您无法对其进行硬编码。但是,webforms 4引入了静态客户端ID以解决您遇到的问题。

例如,将此属性添加到您的控件:ClientIDMode="Static",然后您可以在JavaScript中引用您的控件,如下所示:

$('#hdTime')

如果您不能使用webforms v4,那么您必须将JavaScript放在aspx页面中。

答案 2 :(得分:0)

您可以这样使用:<asp:HiddenField ID="hdTime" runat="server" ClientIDMode="Static" />

你可以找到控件的ID,同样重要的是要给 ClientIDMode =“静态”

var id = Document.getElememtById(“hdTime”)。value;

var id = $(“#hdTime”)。val();