【问题标题】:displaying message box using javascript by avoiding postback like click events. The ok, cancel buttons should only close the messgae box通过避免点击事件之类的回发,使用 javascript 显示消息框。好的,取消按钮应该只关闭消息框
【发布时间】:2014-01-25 04:56:56
【问题描述】:

当用户单击页面上的任何按钮或链接按钮时,我遇到了一种情况,它应该显示消息框。所以我通过将javascript函数添加到window.onbeforeunload来显示消息框。

到目前为止,它工作正常。我只想在用户单击确定或取消按钮而不执行任何回发事件时不显示消息框。所以我在确定和取消按钮上保持“返回错误”。当我单击这些确定时,取消按钮在 IE 中显示另一个消息框为“来自网页的消息错误”。

【问题讨论】:

  • 你能把你的代码放在这里吗?
  • 你的问题对我来说似乎不清楚,你想要一堆什么都不做的消息框吗?可以向我们展示您的代码,以便我们有更好的想法。
  • window.onbeforeunload = function () { if (confirm('A patient match has been found continue with "create new patient"?')) { return false; } 否则 { 返回假; } };
  • 主要目的是不让用户点击除一个按钮之外的任何东西。我通过保持 onbegforeunload =none 使用 javacript 来实现此功能

标签: c# javascript asp.net


【解决方案1】:

嗯...我从两个方面质疑这种技术:

  1. 为什么您希望'return false' 始终为您的okcancel 按钮抑制此事件?为什么 IE 会根据返回值 false 抑制事件?
  2. 附加到window.onbeforeunload 事件有什么用?您不应该对这些元素上的click 事件做出响应吗?

老实说,听起来 IE 正在根据您的代码提供合理的操作:onbeforeunload 事件正在触发,它显示了一个 false 的消息框,这就是您要返回的内容。

这里有几个想法。
一种。不要使用return false 来抑制okcancel 按钮的消息框,而是在您的回调函数中使用if/then 来检查是否单击了其中之一。如果是这样,只需return 并且不要执行模态的代码。
湾。将所有按钮、链接和输入绑定到 click 事件,而不是 onbeforeunload。然后以同样的方式使用上面(a)中的签入。

使用jQuery绑定事件:

$(document).ready( function(){
    $('button').on('click', function(e) {
        if ((e.target.id === 'ok') || (e.target.id === 'cancel')) {
            return();
        } else { 
            // display message box
        }
    })
});

希望这会有所帮助!

免责声明:我实际上并没有看到代码,所以这有点像在黑暗中拍摄。

【讨论】:

    猜你喜欢
    • 2012-02-20
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    相关资源
    最近更新 更多