1

我正在运行一些带有几个 html 控件的 java 脚本。一切正常。

除非我将runat =“ server”属性添加到html控件中,以便我可以在后面的代码中访问它,否则java脚本功能不起作用。这是普遍现象吗?在 java 脚本中使用 runat = "server" 属性是否有解决方法?

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

使困惑。

4

3 回答 3

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.net 生成的 ID 的“重命名”版本。

于 2012-06-22T20:03:47.300 回答
1

好的,runat="server" 没问题。

您需要修改 javascript。

如果您的控件输入为:

<input id="control_ID" runat="server" />

在 javascript 中使用 <% = control_ID.ClientId %> 来引用控件

它会正常工作。但是,如果这不起作用,请分享您的代码。我会解决的!

于 2012-06-22T19:55:34.883 回答
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 不起作用

于 2013-02-05T06:49:53.460 回答