2016-08-31 56 views
0

我的一些用户报告了我的问题,ASP.NET应用程序挂起并不会继续在IE中(在Chrome,Firefox,Edge,Safari中 - 它是加工!)。问题是,当用户点击按钮时,它应该在内容加载时被禁用,所以我使用OnClientClick禁用按钮,然后继续使用C#背景中的OnClick函数。但只有在IE浏览器中不起作用!该按钮被禁用,但之后没有任何反应,应用程序不会继续。IE问题:禁用linkbutton onclientclick并继续执行onclick功能

我尝试禁用C#中的按钮,从jquery,从函数...但它总是一样的!

任何想法?

<asp:LinkButton ID="GoButton" runat="server" Text="<div></div>" CssClass="Go" OnClick="GoButton_Click" OnClientClick="return disablebutton(this);" /> 


<script> 
    function disablebutton(btn) { 
     $(btn).attr("disabled", "disabled"); 
     return true; } 
</script> 

回答

1

要禁用具有Enabled="false"一个LinkBut​​ton,ASP.NET移除锚定元件的href属性。为了使发生回发,您可以用setTimeout异步删除属性:

function disablebutton(btn) { 
    setTimeout(function() { btn.removeAttribute('href'); }, 10); 
    return true; 
} 

确保EnabledOnClick属性不会在后台代码修改,使LinkBut​​ton的启用和正常工作回传后。

+0

It's像做考试的应用程序。点击按钮后,应该禁用它,并且应该加载问题。当我回答问题时,由于回发(后面的功能),该按钮再次启用。当我使用你的建议时,它只能在第一次使用,之后它被禁用,不能再次使用。 – user5618385

+0

我不明白你的意思是“它只能第一次使用”。回发后,LinkBut​​ton是启用还是禁用? – ConnorsFan

+0

回发之后,它再次启用,这就是为什么它在其他浏览器上工作,因为我禁用了它,但是当它是新问题的时候它又被启用了。 “仅限第一次” - 我登录后,点击按钮即可获得第一个问题,并获得第一个问题!但之后,我不能再点击它了,因为我猜不知其他点击事件是不是被解雇了?该按钮只能被禁用,并保持这种状态。 – user5618385

0

而不是试图禁用它,你可以删除它的点击事件。

试试这个:

function disablebutton(btn) { 
    $(btn).bind('click', false);    
    return true; 
} 
+0

与我上面描述的相同的结果:( – user5618385

+0

您的页面是否使用更新面板? – Santi