我正在运行一些带有几个html控件的java脚本。一切正常。
除非我将runat =“server”属性添加到html控件,因此我可以在后面的代码中访问它,java脚本函数不起作用。这是常见的事吗?有一个解决方案是使用java脚本运行runat =“server”属性吗?
或者如何使用run at server属性在后面的代码中访问我的Html控件?
混淆。
答案 0 :(得分:2)
这很有可能发生,因为您的标记看起来像这样:
<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的ID的“重命名”版本。净产生。
答案 1 :(得分:1)
好的,runat =“server”没问题。
您需要修改javascript。
如果您的控件输入为:
<input id="control_ID" runat="server" />
使用&lt;%= control_ID.ClientId%&gt;在javascript中引用控件
它会正常工作。但是,如果这不起作用,请共享您的代码。我会解决的!
答案 2 :(得分:0)
<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不起作用