【问题标题】:Trouble binding jquery javascript click event to asp.net button无法将 jquery javascript 单击事件绑定到 asp.net 按钮
【发布时间】:2010-11-11 09:38:28
【问题描述】:
我使用以下代码:
jQuery(document).ready(function () {
jQuery('<%= btnSave.ClientID %>').click(function(){
alert('hello world');
});
});
当我点击 asp.net 按钮时:
<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" />
它只是不火。有人知道为什么吗?
干杯,
皮特
【问题讨论】:
标签:
c#
javascript
asp.net
jquery
button
【解决方案1】:
jQuery(document).ready(function () {
jQuery('#<%= btnSave.ClientID %>').click(function(){
alert('hello world');
});
});
你为什么放 .ClientID??在 asp 中你没有给按钮添加任何类
对不起我的英语
【解决方案2】:
嗨,抱歉,我发现它需要在选择器前加一个井号!
jQuery(document).ready(function () {
jQuery('#<%= btnSave.ClientID %>').click(function(){
alert('hello world');
});
});
【解决方案3】:
这里的另一种选择是使用一个类,这样您就可以在外部移动您的代码,例如:
<asp:Button ID="btnSave" CssClass="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" />
那么你的代码可以如下所示:
jQuery(function($) {
$('.btnSave').click(function() {
alert('hello world');
});
});
可以在外部.js 中,因此您的用户下载一次,而不是每次都作为页面的一部分。或者,使用attribute ends-with selector 效率稍低,如下所示:
jQuery(function($) {
$('input[id$=btnSave]').click(function() {
alert('hello world');
});
});
这将选择 ID 以 btnSave 结尾的所有 <input> 元素。