我正在运行一些带有几个 html 控件的 java 脚本。一切正常。
除非我将runat =“ server”属性添加到html控件中,以便我可以在后面的代码中访问它,否则java脚本功能不起作用。这是普遍现象吗?在 java 脚本中使用 runat = "server" 属性是否有解决方法?
或者如何在不使用 run at server 属性的情况下在后面的代码中访问我的 Html 控件?
使困惑。
我正在运行一些带有几个 html 控件的 java 脚本。一切正常。
除非我将runat =“ server”属性添加到html控件中,以便我可以在后面的代码中访问它,否则java脚本功能不起作用。这是普遍现象吗?在 java 脚本中使用 runat = "server" 属性是否有解决方法?
或者如何在不使用 run at server 属性的情况下在后面的代码中访问我的 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 的“重命名”版本。
好的,runat="server" 没问题。
您需要修改 javascript。
如果您的控件输入为:
<input id="control_ID" runat="server" />
在 javascript 中使用 <% = control_ID.ClientId %> 来引用控件
它会正常工作。但是,如果这不起作用,请分享您的代码。我会解决的!
<img alt="Calendar" onmouseover="javascript:this.style.cursor='hand';"
src="~/images/Calander_0.png"
id="ImgCalender"
onclick ="javascript:showCalendarControl('<%=txtAppointmentDate.ClientID %>','mm/dd/yyyy');"
runat="server" />
如果设置了在服务器上运行 JavaScript 不起作用