我有这个应用程序,我想使用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,则该按钮将保持禁用状态。
答案 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>