我的网页上有一个网页表单。在用户离开页面之前,我想要一条javascript弹出消息,询问用户是否已完成表单上的“是”或“否”按钮。如果用户单击“是”,则将它们带到他们打算转到的页面。但是,如果用户单击“否”,则用户将保留在此页面上。
我对Javascript不太熟悉所以任何指导都会非常感激。我怀疑我会使用下面的东西:
<ELEMENT onbeforeunload = "handler" ... >
提前致谢。
Split P。
答案 0 :(得分:4)
我不确定这是否是其他人需要做的事情,或者你认为是个好主意的事情,但是如果你有选择的话,我可以说,请不要这样做。如果用户想要离开页面,让他们离开页面而不告诉他们他们已经知道的事情。此外,一些现代浏览器已经将这个功能融入其中,因此它只是为用户添加了另一层烦人的东西。
话虽如此,请查看this page,它会告诉您需要了解的所有信息。
onbeforeunload古怪的原因是,如果您在事件处理程序中完全返回ANYTHING,它将弹出一个确认警告框,询问用户他或她是否真的想要离开页面
...
您可以通过在return语句中包含一个字符串,在这两行之间插入自己的解释性文本。例如:
<script type="text/javascript">
window.onbeforeunload = function () {
return "The text you want the alert box to say.";
}
</script>
答案 1 :(得分:2)
2 1件事(感谢@horray我正在帮助)。
您最好先检测表单是否已通过编程方式填写,然后如果用户单击继续操作而不提供关键数据,请向他们询问。如果他们决定不提供它,那就放手吧。
例如:
var requiredField = document.getElementById("required");
if (requiredField.value == "")
{
if (!confirm("Are you sure you want to go without saving your work?")){
requiredField.focus();
}
}
您可以将其放在点击处理程序中以获取链接,提交按钮或在您提到的beforeunload事件中。