JS办理页面革新导致按钮OnClientClick变乱消散标题

[复制链接]
发表于 2025-12-9 14:11:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目次
故障征象
开辟运行环境
办理
别的


故障征象

System.Web.UI.WebControls.Button 提供了 OnClientClick  和 OnClick 变乱属性。OnClientClick 提供客户端JS实验本领,并以 return false 或 return true 来决定是否继承实验 OnClick 变乱,OnClick 变乱实验服务器方法,实验 OnClick 变乱会革新 Web 页面。
好比如下代码:
  1. <asp:Button id="sendButton" OnClientClick="return sendReady();"
  2. runat="server" class="btn btn-white"
  3.   Text="发送短信验证码" onclick="sendButton_Click" />
复制代码
OnClientClick 变乱实验 sendReady() JS函数,如果函数 return true; 则实验 onclick 变乱中 sendButton_Click 服务器方法。
别的如果点击此按钮将其置为不可用状态(this.disabled = true;),  再去调用别的服务器按钮变乱,如下图:

图中的发送按钮点击乐成后,临时按钮不可用。此时去操纵别的服务器按钮,如上传图片。则大概会出现不可用按钮规复可用状态时,点击后直接实验了服务器方法,即 OnClientClick 变乱属性消散。

开辟运行环境

操纵体系: Windows Server 2019 DataCenter
.net版本: .netFramework4.7.2 
开辟工具:VS2019  C#
办理

发现通过服务器变乱捆绑,无效:
  1. void Page_load(Object sender, EventArgs e)
  2. {
  3.      sendButton.OnClientClick = "return sendReady();";
  4. }
复制代码
客户端变乱捆绑,有效:
  1. sendbtn.setAttribute("onclick","return sendReady();");
复制代码


别的

本示例中如果将按钮置为不可用状态(disabled = true;),纵然客户端 JS 返回 return true ,也无法调用服务器方法,须要通过 JS 引用,简单的引用方法,我们可以调用如下代码:
  1. __doPostBack(document.getElementById("sendButton").name, '');
复制代码
 __doPostBack方法由.net 天生并管理,可以调用服务器方法,请留意引用的是元素的 name 而不是 ID,引用此方法还须要在页面头部引用如下属性:
  1. <%@ Page Language="C#" AutoEventWireup="true" MaintainScrollPositionOnPostback="true" %>
复制代码
固然如果不添加此选项,我们还可以通过模拟调用潜伏服务器按钮的方法。
感谢您的阅读,盼望本文可以大概对您有所资助。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表