javascript - 根据 JS 确认框防止更新面板中的回发

标签 javascript jquery asp.net

我有一个更新面板,其中包含一个 GridView 和每行图像(删除图标)内以删除该行。我正在尝试在常规 JavaScript 确认弹出窗口中给出答案。

$(function(){
    $("img.delete").on("click", function(evt){ 
        return false; //Does not work
        /*or*/
        evt.preventDefault();//Does not work either
    });
});

Html 呈现:

    <td>
        <img id="ctl00_ctl00_ctl00_ctl00_ctl00_ctl00_ContentPlaceHolderDefault_Content_Content_Content_Content_DashboardGrid_ctl02_DeleteControl140" class="delete" onclick="__doPostBack('ctl00$ctl00$ctl00$ctl00$ctl00$ctl00$ContentPlaceHolderDefault$Content$Content$Content$Content$DashboardGrid','Delete$0')" width="20" height="20" title="Remove item from your list." src="/images/delete_item.png" alt="Remove item from your list." style="border-width:0px;">
</td>

它不起作用,因为回发始终由更新面板执行,更新面板的 UpdateMode 为默认值,因为我没有在标记中设置它。

最佳答案

ThiefMaster提供的答案为我工作,地址:preventDefault() doesn't work对我的情况进行一些小调整:

function pageLoad() 
{
  var inlineFunction = new Function($('img.delete').attr('onclick'));
  $('img.delete').click(function(event){
    if(!confirm('Are you sure?')) {
        event.stopImmediatePropagation();         
    }
  }).click(inlineFunction).removeAttr('onclick');
}

使用 updatepanel+scriptmanager 时,pageLoad 事件可用,它允许我在每次部分回发时重新附加事件处理程序。

关于javascript - 根据 JS 确认框防止更新面板中的回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12790475/

相关文章:

javascript - Angular 数据-前缀属性访问

javascript - 必须按下按钮才能激活 php 代码吗?

jquery - jquery中的反向滚动

javascript - Jquery Ajax 和 MVC5 httpPost 未收到任何值

javascript - 如何在 Angular 2 中过滤具有多个复选框的范围 slider 的结果?

javascript - 双击(文档)而不是单击来关闭选择下拉列表

javascript - 如果单击 div 外部(目标类),则删除类

javascript - 单击一个或多个ID时如何调用同一函数?

asp.net - System.DirectoryServices - 服务器无法运行

c# - 在 SqlCommand 中调用函数