我有一个提交回复页,由于网速问题用户可以重复提交,我想控制按钮的可用状态,可是我写了js设置按钮的disabled,可是就不执行服务端的保存回复的事件了,我怎么能实现让按钮变灰不可用,同时也可以执行服务端的保存事件啊?虽然网上都说设置disabled,可是设置了这个属性真的就不执行服务端事件了,急求解决方案 贴出代码:
aspx:
<asp:Button ID="btn_SubmitKeyWord" runat="server" Text="确定" OnClick="btn_SubmitKeyWord_Click"
OnClientClick="return Check(this);" />js:
function Check(obj) {
var keyWord = document.getElementById('<%=DropDownList_KeyWord.ClientID%>');
if (keyWord.value == "请选择") {
alert("请选择关键字");
return false;
}
else {
obj.disabled = true;
return true;
}
return false;
}
aspx:
<asp:Button ID="btn_SubmitKeyWord" runat="server" Text="确定" OnClick="btn_SubmitKeyWord_Click"
OnClientClick="return Check(this);" />js:
function Check(obj) {
var keyWord = document.getElementById('<%=DropDownList_KeyWord.ClientID%>');
if (keyWord.value == "请选择") {
alert("请选择关键字");
return false;
}
else {
obj.disabled = true;
return true;
}
return false;
}
解决方案 »
- c#????????
- [攒分贴] 通过文件结构直接生成xls文件
- 新手--请教如何获取webbrowser的cookie值
- 很怪的问题,datagridview 绑定 datatable 某列 不能编辑
- 如何创建类库时添加注释??
- 求C#中启动文件命令
- 求:Rational PurifyPlus For VS 2003 (2003.06.00) SN 或则其他"可以使用的"SDE For VS 2003
- 我摘录的和原创的一些C#技术文章,请大家看看。。
- 关于DataGrid绑定数据后,显示错误的问题
- 在线等待:100分求一简单答案.在C#中自己定义了一个类publicFun.cs,问题如下:
- 关于按钮的设计思路
- C#里面有鼠标控件吗??
或者
<asp:Button ID="btn_SubmitKeyWord" runat="server" Text="确定" OnClick="btn_SubmitKeyWord_Click"
OnClientClick="if(Check(this)==false){return false;}" />
我想在用户点击了提交之后设置按钮不可用,我也试过在服务端的事件上来就先设置了按钮的enable=false属性,可是页面上是等提交完表单后才把按钮变灰的,所以网速慢的时候用户还是可以连续点击,所以我就想用户一点击提交,通过客户端马上就把按钮变灰,这样避免用户重复提交,可是总么弄都不成,就是不走服务端事件
提交处理
返回
enable
点下 disable
提交处理
返回
enable
---------------------------------------------
什么意思啊?我是新手,不太明白,能麻烦你说的清楚一点吗?
function Check(obj) {
var keyWord = document.getElementById('<%=DropDownList_KeyWord.ClientID%>');
if (keyWord.value == "请选择") {
alert("请选择关键字");
return false;
}
else {
//obj.disabled = true;
return true;
}
return false;
}
obj.disabled = true; 这个个不要
在btn_SubmitKeyWord_Click 事件里
第一行: btn_SubmitKeyWord.Enable=false;
最后一行为:btn_SubmitKeyWord.Enable=true;
不过这个不是不可用 是在界面上看不到了
document.getElementById("ctl00_ContentMain_imgAdd").value = '正在处理,请耐心等待勿重复上传....';
document.getElementById("ctl00_ContentMain_imgAdd").onclick = Function("return false;");
}
function ResetBtn() {
document.getElementById("ctl00_ContentMain_imgAdd").onclick = "beforeAdd()";
document.getElementById("ctl00_ContentMain_imgAdd").value = '上传';
}
执行完服务端时间后,手动调用ResetBtn() System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "ok", "<script language='javascript' type='text/javascript'>ResetBtn() ;</script>", false);
挺笨挺原始的办法,抛砖引玉
<script type="text/javascript">// <![CDATA[
document.getElementById("bt_Submit").onclick=function()
{
setTimeout(function()
{
var btn = document.getElementById("bt_Submit");
btn.disabled = true;
setTimeout(function(){btn.disabled=false}, 10000);
},10);
}
//]]> </script> 呵呵,这是CSDN在用的方法
是的,可以点,但是不会有任何的动作:document.getElementById("ctl00_ContentMain_imgAdd").onclick = Function("return false;");
这句设置让按钮不会执行任何的操作了
按钮不会变灰,文字会修改为“请勿重复点击”的字样,而且重复点击也不会有任何的效果
如果需要按钮变灰,可以结合24楼的,将这个按钮的display变为'none',让另外一个隐藏的disabled的按钮显示出来
等执行完了,再恢复回来
这个试试。就不会重复提交了
将按钮设置为 服务器控件button1.Enable = false;
提交
button1.Enable = true;