asp.net OnClientClick OnClick的问题

要实现,点击按钮弹出对话框,在对话框中点确定,则disabled按钮,并执行server端方法,如果点取消,则什么都不做。现在的问题是,点了对话框的确定,并没有执行ser... 要实现,点击按钮弹出对话框,在对话框中点确定,则disabled按钮,并执行server端方法,如果点取消,则什么都不做。

现在的问题是,点了对话框的确定,并没有执行server端方法。大家帮我看看是怎么回事呢?

前台代码:
<asp:Button ID="btnSubmit" Text="Submit" runat="server" OnClick="btnSubmit_Click" OnClientClick="return confirmClick(this);" />

javascript:
<script type="text/javascript">
debugger;
function confirmClick(btn) {
var obj = confirm("Do you want to process?");
debugger;
if (obj) {
btn.disabled = true;
return true;
}
else {
return false;
}
}
</script>

经debug, function confirmClick(btn)返回true,但是button的onClick事件还是没有触发。
感谢shenchaoliang 的回答,你是对的。但是btn.style.display = "none";不是我想要的,我还是要disabled,所以最终我没有用OnClientClick,而是在 Page_Load中用了

btnSubmit.Attributes.Add("onclick", "this.disabled=true; if(confirm('Do you want to process?')){" + Page.ClientScript.GetPostBackEventReference(btnSubmit, "").ToString()+"} else{this.disabled = false;return false;}");

希望给遇到同样问题的朋友有所帮助。
展开
 我来答
shenchaoliang
2011-04-18 · TA获得超过1163个赞
知道大有可为答主
回答量:810
采纳率:0%
帮助的人:1496万
展开全部
btn.disabled = true;
关键在这句,disabled以后就不会传这个名为btnSubmit的button值给服务器端了,也就不会执行对应的服务器端方法了
追问
但是我想让用户点了确定之后不能再点submit按钮。如果不用btn.disabled = true;如何实现呢?
追答
最简单的就是
btn.style.display = "none";
先隐藏按钮
或者加个透明层覆盖遮盖整个页面当然也就遮盖了按钮,像蒙版样。现在很多对话框就是这样的效果。

另隐藏按钮提交后如果是测试环境下由于速度快很难看出效果。而且在提交后如果成功执行了某些操作的话为了避免再提交也应该在对应的服务端方法中,把提交按钮隐藏掉。
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式