提交按钮点击后变灰色(即不能再点),页面处理完毕后变为正常(即可以再点) 主要是想防止用户因网速慢多次提交的问题!应该怎么实现?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 提交時<input type="submit" name="B6" value="提交" onclick="B6.disabled='true'">提交完後重類加載頁面,原來灰色就會變黑色的了 两个发光的红石榴,真COOL啊,先恭喜一下!怎样判断页面处理完毕? btn.Attributes.Add("onclick","this.disabled='true';return true;");这样可以变灰色了,但不能触发Click事件!怎么会事? btn.Attributes.Add("onclick","this.disabled='true';");这样也不行 a页面function click(){event.srcElement.disbled=true;location.href='b页面';}btn.attachEvent('click',_click)b页面....execute........response.redirect('a页面') Click事件里Button1.Enable = false;PageLoad 的 If(!IsPOstBack) 外面写上Button1.Enable = false; 改一下,少写一个字母event.srcElement.disabled=true asp.net 网页!提交前后都在同一个页!试了以下两种方法都不行,可以变灰色了,但不能触发Click事件!这是怎么会回?法1、<form id="Form1" method="post" runat="server" onsubmit="return NoEditor(this)">function NoEditor(obj){ obj.btn.disabled = true; return true;}法2、btn.Attributes.Add("onclick","this.disabled='true';"); Click事件都触发不了,还谈什么重新指向本页面啊!!!?只有触发后再重新指向本页面 大家肯定发现了,CSDN的“发出回复”按钮就是只能点击一下,点击后就又重新指向本页面!这是怎么实现的?这个方法和我的法1是一样的吧,只是我的Button的Click事件触发不了,郁闷~~~ 这样一个过程吧比如:Button1 Click ---> 设置 Button2.Enabled = false; ---> 处理页面,比如调用一个函数啊什么的--->处理完毕,在调用的函数最后加上Button2.Enabled = true; 敲错了===这样一个过程吧比如:Button2 Click ---> 设置 Button2.Enabled = false; ---> 处理页面,比如调用一个函数啊什么的--->处理完毕,在调用的函数最后加上Button2.Enabled = true; 在 服务器上做 Button2.Enabled = false;Button2.Enabled = true;对呈现来说有意义吗? 不要光说不试呀!试成功了再说啊!总的思想是:变灰后(即不能操作)重新联接到本页面就行了。CSDN的“发出回复”按钮的效果就是我想要的!大家回贴的时候可以细心看一下啊!但现在出现的问题是:变灰后,按钮的Click事件就不执行了,去掉btn.disabled = true;就可以执行了!谁能把完整正确的代码贴出来学学!谢谢! 刚试了一下,按照 BlueDestiny(Last, Present, Future) 兄的方法可行,但他是直接连接到另一页,对于URL传参也许可以,如果是 FORM 提交 该如何呢? BlueDestiny(Last, Present, Future) 的方法不行的,也不能执行按钮的Click事件,事件是CS代码中的!他的这种方法只是用JS把按钮变的不可用后,再把页面联接到其它网页。对我的问题来说没用!谢谢 你在 CLICK 事件中的操作应该可以放到另一个页面进行操作吧。操作完成以后再回来不就行了 哎呀~~这样一下子会慢很多!饶了我吧!csdn就可以呀! CSDN是 FORM 提交啊,你看清楚 告诉楼猪一个办法吧。你把你要弄的服务器端要做的东西都放在一个LinkButton的click事件中,这个LinkButton的Text值设成空,然后话一个很隐秘的地方,这样就成了一个隐藏的服务器端控件了。LinkButton的名字我假设就是LinkButton1然后,你写一个段这样的javascript代码<script language="javascript"> function abc(obj) { obj.disabled = true; document.all("LinkButton1").click(); } </script>再在页面上放一个普通的HTML按钮,然后把它的onclick事件调用这个函数,参数就是自己本身。就像这样<INPUT type="button" value="Button" name="aaa" onclick="abc(aaa)">这样你要的功能就实现了 你用SESSION,点击按钮后把SESSION为TRUE则屏蔽BUTTON,处理完数据再把SESSION设为FALSE pyuan(菜鸟) 兄的方法治标不治本啊。如果这样,弄个层显示、隐藏不就得了。楼上的 frankonlyfine(大跌眼镜) 兄还要SESSION? 你试过没有?如果屏蔽了按钮,它的事件也就屏蔽了 this.btn_0.Attributes.Add("onclick","document.all.btn_0.disabled=true");Response.Write("aaaaaaaaaaaaaa");Response.Redirect("the URL");這種方法是可行的,樓主請檢查你的Button的事件是否已丟失!! 按照楼上的思路,我重新写了下。可以成功,只要重新注册按钮事件即可,下面是代码:这段是放在 Page_Load 中if(!Page.IsPostBack){ System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("a();"); s.Append(this.GetPostBackEventReference(this.Button1)); this.Button1.Attributes.Add("onclick",s.ToString());}a() 是 JS function a(){ var ok=document.getElementById('Button1'); ok.disabled = true; return true;}OK,解决~楼主记得给分哦。~~ 把anheizhizi的方法浓缩成精华如下所示:各位都要向anheizhizi好好学学。尤其是pyuan(菜鸟)btnSave.Attributes.Add("onclick","this.disabled='true';"+GetPostBackEventReference(btnSave)); 莫非这样使用:首先在页面加一个绝对定位的层,最初不显示,点击button后用层来挡住button:<div id="doing" runat="server" style="Z-INDEX: 12000; LEFT: 0px; WIDTH: 100%; CURSOR: wait; POSITION: absolute; TOP: 0px; HEIGHT: 100%"> <table width="100%" height="100%"> <tr> <td height="100%" align="center" valign="middle"> <table width="300" height="62" bgcolor="#99cccc" style="FILTER: Alpha(Opacity=85); WIDTH: 300px; HEIGHT: 62px"> <tr align="center" valign="middle"> <td><img src="../res/images/loading.gif" align="absMiddle"> <br>正在发送邮件,请稍候........</td> </tr> </table> </td> </tr> </table> </div> 客户端验证事件<SCRIPT LANGUAGE="JavaScript">function CheckSend(){}</SCRIPT>pageload添加:if(!this.IsPostBack) {this.btn_send.Attributes.Add("onclick","if(CheckSend()){javascript:document.getElementById('doing').style.visibility='visible';}else{return false;}");//button提交触发,一旦页面客户端通过验证就显示层,这个时候避免再次提交,加上CheckSend()避免客户端没有通过验证也显示层,这样才能保证正确提交数据。}提交完毕后,重写事件,隐藏层:/// <summary>/// 重写方法/// </summary>/// <param name="e"></param>override protected void OnPreRender(EventArgs e) { doing.Style.Add("visibility","hidden"); } 据说在asp.net 2.0种比较容易处理了,还没有验证。 使用进程来处理最好了using System.Threading;点击按钮启用一个进程System.Threading.Thread ThreadLoad= new Thread(new ThreadStart(你要执行的方法));ThreadLoad.Start();this.Button1.Enable == false;当进程执行完后this.Button1.Enable == true; .aspx<script>function post(){ if (验证输入处理) { document.all.btnSubmit.disabled = "disabled "; return true; } else { return false; }}</script><form runat="server" onsubmit='post();'>......<INPUT id="btnSubmit" type="submit" value="提交"></form>.CSPage_Load(){ if( Page.IsPostBack ) { // 处理提交 } else { // }} to:keconghua(E代風花雪月) 想法不错,但在程序一次性执行过程中,设置this.Button1.Enable == false;是无效的!当网速慢时照样能点多次! TO: yzh0523(水手)如果按钮在服务器端有事件要处理,就不行了,还要用anheizhizi 的!!!呵呵,有想法的继续啊 好东西呀!!!!我正好用得上 谢楼主和anheizhizi 啦 怎么将JS中的byte[]转换为后台服务器代码的byte[]对象? 我写了一个ListView1_ItemDataBound 怎么就不能更新出错? 跪求!母版页的嵌套使用方法!小弟跪求!! 利用反射技术遇到的小问题,请大虾帮忙,急!!!! asp.net页面跳转至html参数为何显示乱码??? 在vs.net2005中怎样修改.sln文件的默认存放路径? SqlDataSource的参数的问题 参数传递的问题! 关于if条件的变量数据类型。 关于asp:label在table中的定位 如何得到远程文件的上次修改时间? 访问注册表问题
<input type="submit" name="B6" value="提交" onclick="B6.disabled='true'">提交完後重類加載頁面,原來灰色就會變黑色的了
怎样判断页面处理完毕?
这样可以变灰色了,但不能触发Click事件!
怎么会事?
这样也不行
function click(){event.srcElement.disbled=true;location.href='b页面';}
btn.attachEvent('click',_click)b页面
....
execute....
....
response.redirect('a页面')
PageLoad 的 If(!IsPOstBack) 外面写上
Button1.Enable = false;
event.srcElement.disabled=true
试了以下两种方法都不行,可以变灰色了,但不能触发Click事件!这是怎么会回?法1、<form id="Form1" method="post" runat="server" onsubmit="return NoEditor(this)">
function NoEditor(obj)
{
obj.btn.disabled = true;
return true;
}
法2、btn.Attributes.Add("onclick","this.disabled='true';");
这是怎么实现的?这个方法和我的法1是一样的吧,只是我的Button的Click事件触发不了,郁闷~~~
Button1 Click ---> 设置 Button2.Enabled = false; ---> 处理页面,比如调用一个函数啊什么的--->处理完毕,在调用的函数最后加上Button2.Enabled = true;
===
这样一个过程吧比如:
Button2 Click ---> 设置 Button2.Enabled = false; ---> 处理页面,比如调用一个函数啊什么的--->处理完毕,在调用的函数最后加上Button2.Enabled = true;
谢谢!
饶了我吧!
csdn就可以呀!
你把你要弄的服务器端要做的东西都放在一个LinkButton的click事件中,这个LinkButton的Text值设成空,然后话一个很隐秘的地方,这样就成了一个隐藏的服务器端控件了。LinkButton的名字我假设就是LinkButton1
然后,你写一个段这样的javascript代码
<script language="javascript">
function abc(obj)
{
obj.disabled = true;
document.all("LinkButton1").click();
}
</script>
再在页面上放一个普通的HTML按钮,然后把它的onclick事件调用这个函数,参数就是自己本身。就像这样
<INPUT type="button" value="Button" name="aaa" onclick="abc(aaa)">
这样你要的功能就实现了
如果这样,弄个层显示、隐藏不就得了。楼上的 frankonlyfine(大跌眼镜) 兄
还要SESSION? 你试过没有?如果屏蔽了按钮,它的事件也就屏蔽了
Response.Write("aaaaaaaaaaaaaa");
Response.Redirect("the URL");這種方法是可行的,樓主請檢查你的Button的事件是否已丟失!!
这段是放在 Page_Load 中
if(!Page.IsPostBack)
{
System.Text.StringBuilder s = new System.Text.StringBuilder();
s.Append("a();");
s.Append(this.GetPostBackEventReference(this.Button1));
this.Button1.Attributes.Add("onclick",s.ToString());
}a() 是 JS
function a()
{
var ok=document.getElementById('Button1');
ok.disabled = true;
return true;
}OK,解决~
楼主记得给分哦。~~
<table width="100%" height="100%">
<tr>
<td height="100%" align="center" valign="middle">
<table width="300" height="62" bgcolor="#99cccc" style="FILTER: Alpha(Opacity=85); WIDTH: 300px; HEIGHT: 62px">
<tr align="center" valign="middle">
<td><img src="../res/images/loading.gif" align="absMiddle"> <br>正在发送邮件,请稍候........</td>
</tr>
</table>
</td>
</tr>
</table>
</div> 客户端验证事件
<SCRIPT LANGUAGE="JavaScript">
function CheckSend()
{}
</SCRIPT>pageload添加:
if(!this.IsPostBack)
{
this.btn_send.Attributes.Add("onclick","if(CheckSend()){javascript:document.getElementById('doing').style.visibility='visible';}else{return false;}");
//button提交触发,一旦页面客户端通过验证就显示层,这个时候避免再次提交,加上CheckSend()避免客户端没有通过验证也显示层,这样才能保证正确提交数据。
}
提交完毕后,重写事件,隐藏层:
/// <summary>
/// 重写方法
/// </summary>
/// <param name="e"></param>
override protected void OnPreRender(EventArgs e)
{
doing.Style.Add("visibility","hidden");
}
using System.Threading;
点击按钮启用一个进程
System.Threading.Thread ThreadLoad= new Thread(new ThreadStart(你要执行的方法));
ThreadLoad.Start();
this.Button1.Enable == false;
当进程执行完后
this.Button1.Enable == true;
<script>
function post()
{
if (验证输入处理)
{
document.all.btnSubmit.disabled = "disabled ";
return true;
}
else
{
return false;
}
}
</script>
<form runat="server" onsubmit='post();'>
......
<INPUT id="btnSubmit" type="submit" value="提交">
</form>.CS
Page_Load()
{
if( Page.IsPostBack )
{
// 处理提交
}
else
{
//
}
}
如果按钮在服务器端有事件要处理,就不行了,还要用anheizhizi 的!!!
呵呵,有想法的继续啊