老问题了:现在有一个提交表单,为了防止重复提交,要在鼠标点击“提交”按钮后将“提交”按钮设为不可用状态,enabled=false。问题的关键是,这个按钮是服务器端控件,而且已经有onclick后台事件了!经多方查找搜索无果,查到的都是input类型的html控件解决办法,无奈只能掏分以求正解,还望诸位高手不吝赐教!
解决方案 »
- 安全验证cookies
- dropdownchecklist文本框随着选择越多变得越长?
- 关于测试版开发的问题
- 产生一个9位数的随机数,要求精度尽量高,在线等?
- 微软已经发布Beta 版 VS2007 和 .Net3.5 :)
- 帮我看看ajax代码
- 小问题:这文件里,好像没有哪个地方来判断是否按下了<Tab>键,可是怎么运行的时候,按下<Tab>键就提交了呢?
- 急!急!急!把Datagrid的EnableViewState设为False,怎么样做才能不影响翻页功能。
- 同一页面内怎样传递dropdownlist的listitem作为数据库的表,并通过datagrid显示
- 询求解决方法?
- calendar控件如何不显示其他月份日期上去
- 请问sqldatasource的selectcommand属性如何动态赋值,能查询结果?
x.Attributes["onclick"] = "this.disabled=true;document.post.submit();";
有条件的话插入时验证是否存在相同的值
=======================================================================
既然知道客户端解决方法,你可以给控件添属性什么的不就行了
-------------------------------
最终还不是表现为一个input标签
xiahouwen(武眉博<活靶子.NET>) 兄的<asp:button id= "x " runat= "server " OnClientClick= "this.disabled=true;document.post.submit(); " / > 这个办法我试过了,我把document.post.submit(); 给去掉了,因为我的提交是在后台执行的。按钮变为不可用了,但是onclick="btnSubmit_Click"又不执行了~诸位,有没有两全的办法?
你放两个 asp:button,其中一个是激发事件的,另一个是enable=false 并且VISBILE为FALSE
当按了第一个激发事件的按钮后:
<asp:button id="x" runat="server" OnClientClick="备用按钮.style.display='';this.style.display='none'" />搞定!
你的意思是提交过一次以后enable=false?
======================================
对,就是这个意思,防止重复提交的,在网页上很常见的一个功能,但是人家都是前台的简单表单提交,我这个不行,后台还有事件要执行的。
private void Page_Load(object sender, System.EventArgs e)
{
this.Btn_Export.Attributes["onclick"] = this.GetPostBackEventReference(this.Btn_Export)+";this.disabled=true;";
}注意这句话必须每次都执行(也就是说不要放在 IsPostBack 判断中),否则你就要确保
function __doPostBack(eventTarget, eventArgument) 每次都会在 IE 中出现
你的意思是提交过一次以后enable=false?
======================================
对,就是这个意思,防止重复提交的,在网页上很常见的一个功能,但是人家都是前台的简单表单提交,我这个不行,后台还有事件要执行的。我就有点搞不懂了
你在click事件里的最后加上
button.enable=false
不就行了吗
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" OnClientClick="this.form.submit();this.disabled=true" UseSubmitBehavior="False" /></div>
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class aaa : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e )
{
if (Page.IsPostBack)
{
Button1.Attributes.Add("disabled", "disabled");
}
}
protected void Button1_Click( object sender, EventArgs e )
{
string a = TextBox1.Text;
Response.Write(a);
}
}
你在click事件里的最后加上
button.enable=false
不就行了吗
OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="False"
而UseSubmitBehavior="False"这句才是最最关键的!OnClientClick="this.disabled=true;this.form.submit();"这句到哪里都能搜到,但是就是提交的时候不好使,加上了UseSubmitBehavior="False",KO。
以前还真没注意过这个属性,想必很多人也都忽略了,这下长见识了。
孟子兄多次救我于危难之中,感激之情一言难尽!!!本应该多给点分才对,不过由于资金有限,周转不畅,故只能勉强给这点了。下次争取翻倍!
再次拜谢孟子兄,也多谢诸位的热情相助!!!多谢了!!!
试试下面的代码吧,我已经测试通过了,先Alert一下,可以看出来按钮已经禁用了
直接用this.form.submit();虽然可以提交画面,但是不会执行Button1_Click这个函数的。<html>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" /></div>
<asp:Button ID="Button2" runat="server" OnClick="Button1_Click" Text="Button2" /></div>
</form>
</body>
</html><script language=C# runat=server>
protected void Page_Load( object sender, EventArgs e )
{
Button1.Attributes.Add("onclick", "doit(this);");
Button2.Attributes.Add("style", "display:none;");
}
protected void Button1_Click( object sender, EventArgs e )
{
string a = TextBox1.Text;
Response.Write(a);
}
</script>
<script language=javascript>
function doit(obj){
obj.disabled= true;
alert(1);
document.form1.Button2.click();
}
</script>
也借楼主的人气,提供一下我们的需求信息,国内部和赴日的都在招聘,赴日工程师日语三级相当水平或以上,国内部日语能看懂简单式样书即可。
联系方式:[email protected](MSN)
这个问题吗?
Button按钮有这个UseSubmitBehavior="False"
就ok了!!
试试下面的代码吧,我已经测试通过了,先Alert一下,可以看出来按钮已经禁用了
直接用this.form.submit();虽然可以提交画面,但是不会执行Button1_Click这个函数的。
=======================
老兄,你弄得太复杂了吧?像我这个,弄一个按钮的,简单一点,应该没问题。asp.net 2.0下测试通过。
不要这么麻烦啦,看以下代码
private void Page_Load(object sender, System.EventArgs e)
{
this.Btn_Export.Attributes["onclick"] = this.GetPostBackEventReference(this.Btn_Export)+";this.disabled=true;";
}注意这句话必须每次都执行(也就是说不要放在 IsPostBack 判断中),否则你就要确保
function __doPostBack(eventTarget, eventArgument) 每次都会在 IE 中出现
========================================
寒羽枫兄的方法也好使。对不住了寒羽枫兄,要不是myminimouse(坚决不用baidu)的提醒,差点把你的帖子漏过去。怪只怪你下边的钻石太耀眼了,没别的兴趣,就一个见钱眼开的毛病~唉,罪过罪过。