我有一个默认禁用的按钮,但是通过JavaScript启用(或没有禁用?),但是当我点击它时它实际上并没有做任何事情(即发布)。相关代码:
<asp:Button runat="server" ID="btnLoad" Text="Load"
OnClick="btnLoad_Click" Enabled="False"/>
启用:
var btnLoad = $get("<%= btnLoad.ClientID %>");
btnLoad.disabled = false;
我连接了另一个按钮以回发并启用服务器上的原始按钮(btnLoad),这似乎可以解决问题。因此,似乎是在客户端上启用了按钮,而不是在服务器上启用了按钮。我想除了强制回帖以启用按钮之外我什么也做不了?我不知道为什么我现在仍然会发布这个问题,但无论如何我都会这样做:)
答案 0 :(得分:3)
这是因为服务器认为“哦,该按钮被禁用,我将忽略该消息”。
最好的方法是在服务器端启用它,然后在页面上使用JavaScript禁用它(在页面顶部放置一个<script>
标记) - 然后再像以前一样重新启用它现在
答案 1 :(得分:2)
仅提供disabled
属性意味着它已被禁用。试试这个:
btnLoad.removeAttribute("disabled");
答案 2 :(得分:0)
禁用该控件的viewstate并查看它是否有效。 视图状态“记住”该按钮已被禁用,可能不会触发on_click事件
答案 3 :(得分:0)
我假设您在事件向服务器注册之前禁用了该按钮,因此启用它时它无法正常工作。
如果您在后面的代码中禁用它,请在Pre_Render
事件上执行此操作。如果您是通过javascript进行的,请在$(document).ready()
中进行。
如果没有你可以覆盖按钮的onClick并使用JS强制回发:
$('#<%= btnLoad.ClientID %>').onClick(function() {
__doPostBack("<%= btnLoad.ClientID %>", "");
});