使用javascript启用asp.net按钮

时间:2014-02-09 18:07:09

标签: c# javascript jquery asp.net

我有这个应用程序,我想使用javascript启用asp.net按钮。 JavaScript代码:

function Enable() {
  document.getElementById('<%= Begin.ClientID %>').disabled = false;
}

Asp按钮:

<asp:Button ID="Begin" runat="server" Text="Submit" OnClick="Button1_Click"/>

我正在使用ClientScriptBlock来调用启用功能:

protected void Page_Load(object sender, EventArgs e)
{
  Begin.Enabled = false;
  ClientScript.RegisterClientScriptBlock(GetType(), "EnableButton", "Enable();", true);
}

但是当我运行应用程序时出现错误:

  

0x800a138f - Microsoft JScript运行时错误:'document.getElementById(...)'为null或不是对象

任何人都可以帮助我吗?

如果用户在浏览器上激活了JavaScript,我想要检查一下。如果未启用JavaScript,则该按钮将保持禁用状态。

1 个答案:

答案 0 :(得分:0)

似乎javascript代码放在一个单独的javascript文件中。但是你似乎在其中使用了一些<% %>服务器端标签,显然不会被处理。这些标签仅适用于ASPX页面。所以我想在ASPX页面中你需要声明一个变量:

<script type="text/javascript">
    var beginClientId = '<%= Begin.ClientID %>';
</script>

然后在你单独的.js文件中你可以使用它:

function Enable() {
  document.getElementById(beginClientId).disabled = false;
}

如果您使用的是ASP.NET 4.0,只需转动static or predicatble ids

<system.web>
    <pages clientIDMode="Static"></pages>
    <compilation debug="true" targetFramework="4.0" />
</system.web>