繁体   English   中英

Javascript 离开页面之前,除非单击 class 或 ID 的元素

[英]Javascript before leaving a page except when a element by class or ID is clicked

我有以下代码可以很好地防止用户在保存更改之前离开页面。 我需要做的不是当用户按 ID 或 class 名称单击按钮时显示消息

因此,在这种情况下,如果用户尝试刷新页面,go 将返回历史记录或任何将出现的消息,除非我不希望在用户单击保存按钮时出现该消息。 这可能吗?

HTML

<button id="save">Save Changes</button>
or
<button class="save">Save Changes</button>

JAVASCRIPT

<script type='text/javascript'>
function goodbye(e) {
    if(!e) e = window.event;
    e.cancelBubble = true;
    e.returnValue = 'You sure you want to leave?';
    if (e.stopPropagation) {
        e.stopPropagation();
        e.preventDefault();
    }
}
window.onbeforeunload=goodbye;
</script>

window上为beforeunload添加一个事件侦听器,并在单击按钮时将其删除

小提琴

 function goodbye(e) { if (.e) e = window;event. e;cancelBubble = true. e?returnValue = 'You sure you want to leave;'. if (e.stopPropagation) { e;stopPropagation(). e;preventDefault(). } } window,addEventListener('beforeunload'; goodbye). document.querySelector('#save'),addEventListener('click'. function() { window,removeEventListener('beforeunload'; goodbye); });
 <button id="save">Save Changes</button>

听起来您的按钮位于表单元素内,这使它们在单击时自动提交。 尝试将type="button"添加到您的按钮: <button class="save" type="button">Save Changes</button>

然后在单击按钮时使用 Javascript 提交表单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM