Javascript 确认,捕获用户选择

标签 javascript jquery html

某网站实现了一个第三方插件,提示用户在删除前进行确认。

confirmDelete: function (event) {
    var go_ahead = confirm("Are you sure you want to delete this draft? This action cannot be undone.");
    if (go_ahead) {
        return;
    } else {
        event.preventDefault();
    }
}

在我自己的js文件中,我想知道用户点击的是“取消”还是“确定”。

我可以判断用户何时收到确认窗口提示(通过他们单击删除按钮),但我无法确定用户是单击了“取消”还是“确定”。

我想将这段代码分开,因为插件会定期更新。

$('button[name="delete"]').on('click', function(event) {
    console.log('delete btn clicked');
    console.log(event);
});

我在我的控制台中查看了事件的内容,但没有任何问题。

最佳答案

将调用 confirm 的值返回给您的 onClick 处理程序,例如,

var SomeObject = {
  confirmDelete: function () {
    return confirm("Are you sure you want to delete this draft? This action cannot be undone.");
  }
};

然后:

$('button[name="delete"]').on('click', function(event) {
    var confirmed = SomeObject.confirmDelete();
    if (!confirmed) {
        event.preventDefault();
        return;
    }

    // etc...
});

我从确认函数中删除了事件处理。这使它接近实际事件,并且看起来更规范的 jQuery。它提高了可读性并简化了测试。

关于Javascript 确认,捕获用户选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36630887/

相关文章:

javascript - 仅在此形式中使用 javascript

javascript - 在 firefox 中,web 控制台和浏览器控制台有什么区别

javascript - 如何使用js数组作为数据源动态更新jquery数据表

javascript - Jquery 或 JavaScript :Assigning the Textarea value to hidden field

html - 如何使用 twitter-bootstrap 在中心呈现/对齐 Logo

c# - asp/css/html内容占位符问题

php - 通过 php 脚本加载图像时如何缓存图像

javascript - 如何获得过滤后的数组元素的总和

javascript - 将 HTML 显示为文本,更改 BBCode 以显示为 HTML JQuery/JS

html - 图像上的 float 文本?