【问题标题】:Event not firing up (onclick)事件未触发(onclick)
【发布时间】:2015-06-28 05:40:47
【问题描述】:

尝试更改几乎所有内容(即 runat="server"、单双冒号) 这是尝试:

<head runat="server">

<script type="text/javascript" >

    function Decide() {

        document.getElementById('l').innerText = "after";

    }

</script>
</head>

<body>
    <form id="form1" runat="server">
        <button    onclick="Decide()">Click!</button>
        <asp:Label ID="l" runat="server">before</asp:Label>

    </form>
</body>

我做错了什么?

【问题讨论】:

  • 查看源代码,看看它是否确实有 id="l" - 我不是 ASP,但你不应该注册脚本吗?并将按钮也更改为&lt;input type="button"
  • 您确定表单不只是提交并重新加载页面
  • 试过.. 不工作。

标签: javascript asp.net web onclick


【解决方案1】:
  1. 使用标签的ClientId
  2. 停止发布表单,并使用“return false”

    <script type="text/javascript" >
    
       function Decide() {
    
          document.getElementById('<%=l.ClientID%>').innerHTML = "after";
           return false;
        }
    
     </script>
    </head>
    
        <body>
          <form id="form1" runat="server">
             <button    onclick=" return Decide()">Click!</button>
                <asp:Label ID="l" runat="server">before</asp:Label>
    
           </form>
       </body>
    

【讨论】:

  • 3.还有“innerHTML”。
  • 请注意,asp标签创建为跨度或标签与“AssociatecontrolId”属性一致,如果您设置此属性,则innerText将正常工作
【解决方案2】:

查看生成的html(源码),检查生成的for标签是否有相同的Id。标签的 ID 是服务器端 ID,而不是客户端。这就是javascript找不到元素的原因。

将 ClientId 属性添加到您的标签控件 (ClientId="l") 并再次检查。

问候

【讨论】:

  • 尝试更改为“ClientId”。还尝试更改ID。还是不行
【解决方案3】:

这里是错误的。

document.getElementById('l').innerText = "after";

我尝试更改“innerHTML”而不是“innerText”。它奏效了。总之谢谢大家!

【讨论】:

    猜你喜欢
    • 2020-01-31
    • 2013-04-30
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多