如何在用户在文本框中输入内容并在不知不觉中关闭浏览器时提示?
此外,如果用户未在输入字段中键入任何内容并且关闭浏览器,则浏览器应在不提示的情况下关闭。仅当用户在字段中更改了某些内容时,浏览器才会提示。如果我使用onbeforeunload
事件,即使在保存页面时它也会提供所有内容。有没有办法在javascript中解决我的问题。请帮我给我一些密码。
答案 0 :(得分:2)
点击此链接:http://www.4guysfromrolla.com/webtech/100604-1.shtml
它为您提供有关如何处理onbeforeunload事件的信息。
这个想法是在页面上有一个全局标志。对字段进行任何更改时,此标志设置为true。单击“保存”按钮时,此标志需要设置为false。
在onbeforeunload事件中,检查该标志是否为true,然后相应地显示该消息。
var needToConfirm = true;
window.onbeforeunload = confirmExit;
function confirmExit()
{
if (needToConfirm)
{
// check on the elements whether any change has been done on the fields.
// If any change has been done, then set message here.
}
}
function saveClicked()
{
needToConfirm = false;
}
另一种做事的方法是在通过onchange事件对字段进行任何更改时设置needToConfirm标志。
答案 1 :(得分:2)
您可以使用window.onbeforeunload
。
您可以检查用户是否输入了任何文本,如果是,则只返回要提示的消息。
var hook = false; //
window.onbeforeunload = function() {
var x = $('#box').val();
if (x.length > 1) { //check is user has entered text
hook = true;
}
if (hook) { //return message if there is text
hook = false; //reset hook
return "Did you save your work?"
}
}
Read more about window.onbeforeunload here
Here is a link to a demo