gpt4 book ai didi

javascript - 如何防止表单提交时出现 "Are you sure you want to navigate away from this page?"警报?

转载 作者:搜寻专家 更新时间:2023-10-31 22:22:20 25 4
gpt4 key购买 nike

我有一个简单的 html 表单,其中只有几个字段。

我想确保用户在试图离开页面时收到警告消息。所以我在页面上添加了脚本,只要用户试图离开该页面,该脚本就会运行。

但当用户尝试提交表单时,我也会收到此警告消息。当用户保存表单时,我不想要此警告消息。

请帮忙。

下面是一些示例代码。

<html>
<head>

<script>
function verifyexit() { return 'Are you sure ?'; } window.onbeforeunload = verifyexit;
</script>
</head>
<body>
Go to <a href="b.html"> another page </a>
<form action="c.html">
name : <input type="text" name="name" value=""/> <br>
email : <input type="text" name="email" value=""/> <br>
<input type="submit" value="save"/>
</form>
</body>

最佳答案

stackoverflow reference

打开它:

window.onbeforeunload = "Are you sure you want to leave?";

关闭它:

window.onbeforeunload = null;

请记住,这不是正常事件 - 您无法以标准方式绑定(bind)到它。

检查值?这取决于您的验证框架。

在 jQuery 中,这可能类似于(非常基本的示例):

$('input').change(function() {
if( $(this).val() != "" )
window.onbeforeunload = "Are you sure you want to leave?";
});

With JQuery这东西很容易做。因为您可以绑定(bind)到集合。

仅执行 onbeforeunload 是不够的,您只想在有人开始编辑内容时触发导航。

要使其在 Chrome 和 Safari 中运行,您必须这样做

window.onbeforeunload = function (e) {
e = e || window.event;

var msg = "Sure you want to leave?";

// For IE and Firefox prior to version 4
if (e) {
e.returnValue = msg;
}

// For Safari
return msg;
};


这是引用中的一般规则

window.onbeforeunload = function (e) {
e = e || window.event;

// For IE<8 and Firefox prior to version 4
if (e) {
e.returnValue = 'Any string';
}

// For Chrome, Safari, IE8+ and Opera 12+
return 'Any string';
};

reference: https://developer.mozilla.org/en/DOM/window.onbeforeunload

关于javascript - 如何防止表单提交时出现 "Are you sure you want to navigate away from this page?"警报?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11183682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com