使用JavaScript在usercontrol中选择元素

时间:2011-03-16 17:09:18

标签: javascript asp.net

我有一个包含usercontrol的Web表单,我希望能够使用javascript从表单页面访问usercontrol中的html元素。

我尝试了以下内容:

document.getElementById('<%= usercontrol.clientid %>')

但是这返回了null

我浏览了一下firebug,发现usercontrol中的标签使用了像usercontrolid_myelement这样的clientid。我猜这样的事情可能有用:

document.getElementById('<%= usercontrol.clientid %>'+'_myelement')

有更好/更好的方法吗?

3 个答案:

答案 0 :(得分:0)

您的问题可能是由于在html完全加载之前运行了javascript。

以下结果为空

<head>
  <script type="text/javascript">
    alert(document.getElementById('main'));
  </script>
</head>
<body>
  <div id="main">

  </div>
</body>

这样更好并返回对象

<head>
  function foo(){alert(document.getElementById('main'));}
</head>
<body onload="foo();">
  <div id="main">

  </div>
</body>

答案 1 :(得分:0)

如果您使用.net 4,那么您可以阻止生成的ID处于那种奇怪的格式。 只需添加此属性asp.net ClientIDMode =“Static” 例如

这应该可以让你更容易从davascript访问dom。

答案 2 :(得分:0)

我用心灵力量看过你的问题了!

您的问题是主页中的servercript无法访问用户控件的ASP.net元素。

解决方案是通过usercontrol中的属性公开元素,或者只显示所需元素的ClientID。然后,您可以像Javascript一样在Javascript中使用ClientID。