如何在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
            });

请帮帮我,谢谢!

如何在jquery中处理按钮的单击事件

问题是回发在单击处理程序之前执行。下面的代码可以工作,但是很难看(这里是测试代码):

$(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,如何在客户端挂接回发事件