如何在jquery中处理按钮的单击事件
本文关键字:按钮 单击 事件 处理 jquery | 更新日期: 2023-09-27 18:17:18
我有一个网格视图,其中我有一个按钮字段,用于删除网格视图中的特定行,使用GridView_RowDeleting()事件。
当特定的行被渲染时它就是这样的
<input type="button" value="Delete" onclick="javascript:__doPostBack('ctl00$ContentPlaceHolderBodyMasterPage$grdvwUsers','Delete$0')" class="delete" />
删除功能工作正常
但是我想在这个按钮上显示一个确认消息,点击是否删除用户。为此,我添加了查询代码来显示确认消息,但这不起作用,不知道为什么,
$(".delete").click(function(e) {
// code for displaying the confirmation dialog
});
请帮帮我,谢谢!
问题是回发在单击处理程序之前执行。下面的代码可以工作,但是很难看(这里是测试代码):
$(function () {
var $button = $(".delete");
var command = $button.attr('onclick'); // Keep the inline command
$button.removeAttr('onclick'); // Clear the inline onclick
$button.click(function() {
if (confirm('Are you sure?')) {
eval(command.replace('javascript:', '')); // Call the stored command
}
});
});
我建议使用Ajax控件工具包中的确认按钮扩展器
还没有测试过,但试一试
$(".delete").click(function() {
return confirm('Are you sure?');
});
…应该可以;)
在元素中定义一个处理器:
<input type="button" value="Delete" onclick="javascript:__doPostBack('ctl00$ContentPlaceHolderBodyMasterPage$grdvwUsers','Delete$0')" class="delete" />
你必须把这个动作放在jquery的点击函数
对于最新版本的jQuery,应该是这样的:
$("#myButton").on('click', function () {
// do stuff
});
我会将点击事件与jQueryUI弹出对话框挂钩,然后在确认后启动删除函数。
$("#ConfirmDialog").dialog({
title: "Confirm",
modal: true,
resizable: false,
hide: "fade",
autoOpen: true,
width 100,
height: 100,
buttons:
{
"Yes Delete It":function(){
// Delete function here
$(this).dialog("close");
},
"No, Don't Delete":function() {
$(this).dialog("close");
}
}
});
这样做的目的是让你对弹出框有更多的控制,使它看起来像网站的一部分,而不是javascript警告框。
我怀疑__doPostBack函数正在执行并阻止您的代码执行。您可以使用装饰模式并包装现有的__doPostBack,以确保您的代码在进行post back之前有机会执行。
在ASP。. NET,如何在客户端挂接回发事件