我将以下BlockUI javascript设置为在主页面的ContentPlaceholder中的aspx页面上运行。当页面加载时,当我单击ASP按钮时,javascript将触发,并显示警告框1和4,但不显示2和3.
<script type="text/javascript">
$(document).ready(function() {
alert('alert1');
$('#Button3').click(function() {
alert('alert2 button clicked');
$.blockUI({ message: '<h1>Just a moment...</h1>' });
alert('alert 3 It clicked!');
});
alert('alert4!');
});
</script>
我认为它与在ContentPlaceholder中找到按钮有关。
任何想法?
这是按钮,没有设置事件背后的代码。
<td class="style17">
<asp:Button ID="Button3" runat="server" Text="Button" />
</td>
答案 0 :(得分:1)
将选择器从$('#Button3')
更改为$('#<%= Button3.ClientID %>')
顺便说一句,如果您想要阻止点击此按钮,请务必将OnClientClick="return false;"
添加到此按钮
答案 1 :(得分:0)
详细说明Yuriy的答案:ASP.NET控件中的ID字段在呈现为html之前会被更改。它实际上会出现像“ctl00_contentGuts_FORMNAME___CONTAINER_FIELD”之类的东西。这有助于ASP.NET识别它,尤其是在列表控件中使用时。
Yuriy将选择器更改为$('#<%= Button3.ClientID %>')
的答案应该可以正常工作。 ASP.NET的渲染引擎将看到&lt;%=&gt;部分,并使用Button的客户端ID进行渲染。
现在,您使用的是什么版本的.NET?我问,因为在.NET 4中有一种更清洁的方式。在.NET 4中,您可以在控件上设置ClientID属性,如下所示:
<asp:Button ID="Button3" ClientID="Button3" runat="server" Text="Button" />
这将确保您知道按钮ID,并且比其他方法更清晰,更易于阅读。