【问题标题】:Javascript conflicts with Asp.net runat=server attributeJavascript 与 Asp.net runat=server 属性冲突
【发布时间】:2012-06-25 03:54:38
【问题描述】:

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

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

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

困惑。

【问题讨论】:

  • 请复制/粘贴相关代码
  • 嗨,EB。您正在概括您的问题。相反,您需要具体说明您试图通过代码隐藏访问哪个控件,否则该线程将变成 20 个问题的游戏。
  • 我们确实需要查看您的代码来帮助您解决这个问题。也就是说,我怀疑当您将 runat="server" 添加到 HTML 控件时,控件的 ID 会更改为 ctl00_OriginalIdHere 之类的东西,这会导致您的 javascript 中断。你用的是什么版本的asp.net?

标签: javascript asp.net html runatserver


【解决方案1】:

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

<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,您可以通过添加 clientidmode="Static" 来更改 myDiv 的标记,然后您将获得:

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

意味着您的 javascript 将再次运行。如果您使用的是早期版本的 asp.net,那么您需要按照 SHAKKIR SHABBIR 的建议进行操作,并使用 &lt;%=myDiv.ClientId%&gt; 在您的 javascript 中引用该元素,以便您获得 asp.net 生成的 ID 的“重命名”版本.

【讨论】:

  • Rob,这对我来说是很好的信息。我不知道 ClientIDMode=Static .... 感谢您提供的信息!
  • 好的。谢谢Shakir和Rob。我尝试了两种解决方案,Rob 的工作!我也不知道这个属性。 Shakir,我相信你的建议也有效,我一定是做错了什么。谢谢你们俩。最后一个问题,我有一个 HTML 按钮提交,它调用 javascript 函数“初始化”。有没有办法在页面加载事件中调用此按钮单击事件或 javascript 函数?谢谢大家!
  • 这是一个完全不同的问题,所以,问一个新的问题 =) 而且,很高兴我帮助了 :)
【解决方案2】:

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

你需要修改javascript。

如果您的控件输入为:

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

在javascript中使用来引用控件

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

【讨论】:

    【解决方案3】:
    <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 不起作用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      相关资源
      最近更新 更多