2

在我的页面 onLoad() 函数中,我以以下方式禁用页面上的所有控件

var form = document.getElementById("form1");
var elements = form.elements;
for (var i = 0, len = elements.length; i < len; ++i) {
    elements[i].disabled = true;
}
document.getElementById('btnReactivate').disabled = false;

我需要启用页面上的一个按钮(上面的 btnReactivate)。我遇到的问题是,每当我单击按钮并进入 Page_Load 事件 Page.IsPostback 始终为 false 并且后面代码中的 onclick 事件也不会触发。按钮已创建

<asp:Button runat="server"  ID="btnReactivate" Text="btnReactivate" onclick="btnReactivate_Click" width="80px" meta:resourcekey="btnReactivateResource1"  />

和事件处理程序一样

protected void btnReactivate_Click(object sender, EventArgs e)
{}

可能还值得一提的是,我尝试以几种不同的方式禁用表单元素,包括在输入控件中循环而不是所有元素

4

1 回答 1

3

我认为发生这种情况是因为禁用的控件没有回发到服务器(从而防止检测到回发)。

您应该进行控制Readonly。或者在发布之前重新启用它们的客户端。

http://www.w3.org/TR/html401/interact/forms.html#adef-disabled

禁用的控件不能成功。

并且,http://www.w3.org/TR/html401/interact/forms.html#adef-readonly

只读元素可能会成功。

于 2013-10-21T09:53:56.873 回答