【发布时间】:2013-09-09 14:34:20
【问题描述】:
我的页面上有以下 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 如果从代码中不清楚,这样做的目的是防止用户在初始点击后有时间重新加载页面之前点击并重新发送请求
【问题讨论】:
-
试试
$.find()(注意点)或$(document).find() -
现在按钮的值为 [],虽然它没有出错但也不会禁用按钮
-
另外,find 返回一个数组....$.find()[0] 会给你按钮
-
无论如何我的回答应该对你有帮助:)
-
$.find 是空数组 $(document).find() 有数据
标签: asp.net .net jscript.net