事件未触发(onclick)

Event not firing up (onclick)

尝试更改几乎所有内容(即 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>

我做错了什么?

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

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

问候

  1. 使用标签的ClientId
  2. 停止post表格,用"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>
    

这里是错误的。

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

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