asp.net - $Find 返回 null

标签 asp.net .net jscript.net

我在页面上有以下 JScript

<script type="text/javascript">
    function ProcessButtonDisable() {
        var button = $find("<%=ProcessButton.ClientID %>");
        button.disabled = true;
            }
</script>

然后
<asp:Button ID="ProcessButton" Text="Process All" runat="server" OnClick="Process_Click" OnClientClick="ProcessButtonDisable()" />

当运行页面并触发按钮时,我得到

Microsoft JScript 运行时错误:无法设置属性“已禁用”的值:对象为空或未定义

并且动态页面已将其转换为:
<script type="text/javascript">
    function ProcessButtonDisable() {
        var button = $find("ctl00_ctl00_BodyContentPlaceHolder_MainContentPlaceHolder_ProcessButton");
        button.disabled = true;
    }
</script>

<input type="submit" name="ctl00$ctl00$BodyContentPlaceHolder$MainContentPlaceHolder$ProcessButton" value="Process All" onclick="ProcessButtonDisable();" id="ctl00_ctl00_BodyContentPlaceHolder_MainContentPlaceHolder_ProcessButton" />

由于控件已明确定义并且客户端 ID 似乎返回了正确的 ID 我不知道出了什么问题

有什么帮助吗?

ps,如果代码中不清楚,这样做的目的是为了防止用户在初始点击后页面有时间重新加载之前点击并重新发送请求

最佳答案

-1 之前所有假设 JQuery 的答案。 $find is a function由 Microsoft AJAX 库定义。它“提供了 Sys.Application 类的 findComponent 方法的快捷方式”,该方法获取“对已通过 addComponent 方法注册到应用程序的 Component 对象的引用”。尝试使用 $get()相反,它“提供了 Sys.UI.DomElement 类的 getElementById 方法的快捷方式”。

本页详细介绍了这两个功能:The Ever-Useful $get and $find ASP.NET AJAX Shortcut Functions

关于asp.net - $Find 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18700698/

相关文章:

c# - 将两个 IEnumerable 查询合并为一个

javascript - 即使引用后也无法访问外部 Jscript 文件?

visual-studio - 哪个版本的 Visual Studio Express for JScript .NET?

调试FiddlerScript

检查所有复选框的 jquery 前向兼容性问题

c# - 在 C# 中的 File 类上使用静态方法是否安全?

c# - 如何找到最后一次执行循环 while(dr.Read())?

c# - 正则表达式匹配除

jQueryUI Dialog + Firefox + ASP.Net = 访问严格模式调用函数被审查

.net - 如何添加重试以调用 Web 服务?