禁用按钮的问题

msnadair 2010-03-15 05:13:15
ASP。NET中,button1 的OnClientClick函数中,将button1的disabled 设为了True,

发现其OnClick中的服务器方法就不会执行了!?

我具体想做的是,点击一个按钮后,马上禁用此按钮,以防两次点击!只有按钮事件完成后,再恢复此按钮。

但我发现我在JS中将button的DISABLED=TRUE后,不会去执行ONCLICK事件了。

请不要如下回答:
1.在服务器代码中设置BUTTON。ENABLED = FALSE;
2.再加一个按钮,用来招行事件。 我的要求是只用这一个按钮,不再添加其它按钮! 谢谢!!!
...全文
584 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangchen0223 2011-10-08
  • 打赏
  • 举报
回复
1.设置asp:button属性UseSubmitBehavior="false"
2.js代码中 document.getElementById("button1").disabled = true;
__doPostBack('button1', '');
return true;
zjb211434 2010-11-05
  • 打赏
  • 举报
回复
btnAdd.Attributes.Add("onclick", "this.disabled=true;" + this.ClientScript.GetPostBackEventReference(btnAdd, ""));

在js禁用脚本之后,调用下__doPostBack('btnAdd','');
就ok了
marcoak 2010-03-24
  • 打赏
  • 举报
回复
ASP.NET 有提交按钮的页面都有一个__doPostBack方法.

__doPostBack(id, "") 实现手动提交表单到服务器.
MrGenius 2010-03-24
  • 打赏
  • 举报
回复
设置按钮的UseSubmitBehavior=false
火星大能猫 2010-03-16
  • 打赏
  • 举报
回复
加变量页面回传后还是会改变的.除非加隐藏域,那样和加个隐藏button有何区别
火星大能猫 2010-03-16
  • 打赏
  • 举报
回复
楼主为何非得客户嘟啊js实现.服务器端价格disable多方便
msnadair 2010-03-16
  • 打赏
  • 举报
回复
看样子你们都没遇到过呀! 也没使用过呀!

哈。。。

CSDN的兄弟咱没来!

我知道有另一种方法可行! 就是设一个变量!
点击了就置于True,执行完后再置于False,
在执行代码前,先判断是True就直接返回不执行。 为False就再次执行!

但这只是一种方法! 且好像并不怎么受欢迎的方法!

还是找找禁用按钮的方法!

望大家继续顶一下,帮个忙,谢谢!!!
kaukiyou 2010-03-16
  • 打赏
  • 举报
回复
客户端方案基本上是不行的。
禁用了,人家可以刷新,照样提交。

最好查询数据库,看是否重复了,重复就给错误提示。
火星大能猫 2010-03-16
  • 打赏
  • 举报
回复
觉得不可行.先执行服务器端事件后,js就失效了.要么多加个button.
msnadair 2010-03-16
  • 打赏
  • 举报
回复
晕! 这个问题应该比较容易呀! 为什么没人回答呢! 是不是分小了就没人光顾了! 太实际了!
哈。。。

可不能这样呀! 同志们!

在线等解答!
msnadair 2010-03-16
  • 打赏
  • 举报
回复
我也看了CSDN的“提交回复”按钮脚本! 只看到下面一段!这一段只是实现了客户端禁用按钮,但不知道它禁用了之后,如何去执行提交到服务器的功能! 我的问题也正好是在客户端禁用按钮后,如何再执行这个按钮的提交功能!

望搞手再次帮我解答一下,谢谢!!!

document.getElementById("bt_Submit").onclick = function() {
setTimeout(function() {
var btn = document.getElementById("bt_Submit");
btn.disabled = true;
setTimeout(function() { btn.disabled = false }, 10000);
}, 10);
}
myrroom 2010-03-15
  • 打赏
  • 举报
回复
代码就在这个页面,你看看csdn的回帖子的页面的那个“提交回复”按钮,呵呵
mail_ylei 2010-03-15
  • 打赏
  • 举报
回复
不知道我这样的思路可不可以
页面有个隐藏控件默认值为0
按钮
onclientclick 事件 先判断隐藏控件值是否为0
是 1
否 0
onclick事件 先判断隐藏控件值是否为1
是 执行 执行完之后该为0
否 不执行
丰云 2010-03-15
  • 打赏
  • 举报
回复
一个按钮也可以做到,给按钮一个onclick()事件,在事件里禁用后,再提交。
用form.submit();这种方法做提交。
koukoujiayi 2010-03-15
  • 打赏
  • 举报
回复
我过去做过!
我想要达到楼主的效果只能是两个按钮!
一个客户端按钮,一个服务端按钮,服务端按钮display="none"
msnadair 2010-03-15
  • 打赏
  • 举报
回复
TO linrl,
这样是不行的,你可能还没明白我的意思! 就是一个BUTTON,我要在执行完它的客户端程序后(BUTTON的ONCLIENTCLICK事件的函数里),再执行服务器端程序(BUTTON的ONCLICK事件函数里)。
如:
<asp:Button ID="btn" runat="server" mlm="true" OnClick="btnImport_Click" Text="导入" OnClientClick="StartMyShowWait();" />

我要执行完StartMyShowWait()后,再去招行btnImport_Click。但我在StartMyShowWait()设置了document.getElementById('<%=btn.ClientID %>').disabled = true;

结果执行完StartMyShowWait(),并没有招行btnImport_Click.

高手请支招! 谢谢!!!
mengfanzongfox 2010-03-15
  • 打赏
  • 举报
回复
哦!这样啊!SORRY!这样貌似很麻烦的!你加个时间判断让它(按钮)在这段时间的DISPLAY的事件为FALSE!
linrl 2010-03-15
  • 打赏
  • 举报
回复
可以在服务器端注册客户端脚本
aspx端代码

<script type="text/javascript">
function setbtndab(Ctrlid)
{
document.getElementById(Ctrlid).disabled = 1;
return 1;
}
</script>

.cs端代码

protected void Page_Load(object sender, EventArgs e)
{
button1.Attributes.Add("onclick", "setbtnd('btnid')");
}

btnid 为你这个按钮的 ID

msnadair 2010-03-15
  • 打赏
  • 举报
回复
楼上的,看清楚问题了再回答好不! 我晕!
mengfanzongfox 2010-03-15
  • 打赏
  • 举报
回复
就是防止刷新吧!这个太简单了!
<script type="text/javascript">
window.onload=function()
{
window.onkeydown=function(e)
{
if(e.which)
{
if(e.which==116)
{
return false;
}
}
else if(event.keyCode)
{
if(event.keyCode==116)
{
return false;
}
}
}
}
</script>
加了这一段代码后!随便按F5就是把键盘按烂了都不会刷新的!很强很暴力哦!
系统是基于Springboot+vue实现的在线考试系统,适合用于毕业设计进行二次开发,也可以作为工作的开发经验。适合刚毕业的大学生和刚入行的初级软件工程师。本课程会讲解常用的Springboot 和Vue知识和搭建环境的过程,让初学者迅速地在本地开发环境搭建起来,成功运行本套代码。迅速的理解前后端开发的过程,能够完成简单的的bug修改,理解前后端的交互。不管你是初入职场或即将进入职场,想深入学习和了解 Spring Boot 框架和 Vue 的话,那这门课几乎是你最好的选择项目含前端和后端知识,对于前端开发人员和后端开发人员都是一个很好的学习选择。学生系统功能模块介绍登录用户名、密码注册年级、用户名、密码任务中心管理员发布的年级任务,每个学生只能做一次考试题干支持文本、图片、数学公式、表格等,学生答题支持:文本固定试卷可重复练习、自行批改的试卷时段试卷在时间限制内,可重复练习、自行批改的试卷考试记录查看答卷记录和试卷信息错题本答错题目会自动进入错题本,显示题目基本信息个人信息显示学生个人资料更新信息修改个人资料、头像个人动态显示用户最近的个人动态消息中心用于接收管理员发送的消息管理系统功能模块介绍登录用户名、密码主页试卷总数、题目总数、用户活跃度、题目月数量学生列表显示系统所有的学生,新增、修改、删除、禁用管理员列表显示系统所有的管理员,新增、修改、删除、禁用学科列表学科查询、修改、删除学科创编创建学科试卷列表试卷查询、修改、删除试卷创编创建的试卷为时段试卷、固定试卷、任务试卷题目列表题目查询、修改、删除题目创建题目支持单选题、多选题、判断题、填空题、简答题,题干支持文本、图片、表格、数学公式任务列表任务查询、修改、删除消息列表显示已发送的消息,消息已读人数等信息消息发送发送消息给多个用户用户日志显示所有用户日志个人资料显示管理员用户名、真实姓名时间线显示管理员创建时间修改资料修改姓名、手机号项目架构项目展示  

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧