如何在jquery中处理按钮的click事件?

时间:2011-12-07 13:59:26

标签: c# jquery asp.net

我有一个网格视图,其中我有一个按钮,用于删除网格视图中的特定行,使用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
            });

请帮帮我,谢谢!

6 个答案:

答案 0 :(得分:1)

Haven没有测试过,但试试看

$(".delete").click(function() {
  return confirm('Are you sure?');
});

......应该有效;)

答案 1 :(得分:1)

问题是回发是在点击处理程序之前执行的。以下是有效的,但它很难看(test code here):

$(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 Control Toolkit中的Confirm Button Extender

答案 2 :(得分:0)

在元素中定义一个处理程序:

<input type="button" value="Delete" onclick="javascript:__doPostBack('ctl00$ContentPlaceHolderBodyMasterPage$grdvwUsers','Delete$0')" class="delete" />

你必须把这个动作放在jquery点击功能

答案 3 :(得分:0)

使用最新版本的jQuery的API,它将是这样的:

$("#myButton").on('click', function () {
    // do stuff
});

答案 4 :(得分:0)

我会将我的click事件挂钩到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警告框。

答案 5 :(得分:0)

我怀疑__doPostBack函数正在执行并阻止您的代码执行。您可以使用装饰模式并包装现有的__doPostBack,以确保您的代码在回发之前有机会执行。

In ASP.NET, how to hook postback event on clientside