我正在使用一些HTML控件运行一些Java脚本。一切正常。

除非我将runat =“ server”属性添加到html控件中,所以我可以在后面的代码中访问它,否则Java脚本功能将无法正常工作。这是平常的事吗?是否可以在Java脚本中使用runat =“ server”属性来解决?

或者如何使用run at server属性在WITHOUT后面的代码中访问Html控件?

困惑。

最佳答案

这很可能是因为您的标记看起来像这样:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <div runat="server" id="myDiv">
    </div>
</asp:Content>


即您使用的是MasterPage或其他用作INamingContainer的内容。这将导致在标记中写出的ID看起来像这样:

<div>
    <div id="ContentPlaceHolder1_myDiv">
    </div>
</div>


如果您使用的是asp.net 4,则可以通过添加myDiv来更改clientidmode="Static"的标记,然后您将获得:

<div>
    <div id="myDiv">
    </div>
</div>


表示您的JavaScript将再次正常运行。如果您使用的是asp.net的早期版本,则需要按照SHAKKIR SHABBIR的建议进行操作,并使用<%=myDiv.ClientId%>引用JavaScript中的元素,以便获得asp.net生成的ID的“重命名”版本。

10-05 20:41
查看更多