2

当用户在文本框中输入内容并在不知不觉中关闭浏览器时如何提示?

此外,如果用户没有在输入字段中键入任何内容并且如果关闭浏览器,则浏览器应该在没有提示的情况下关闭。只有当用户更改了字段中的某些内容时,浏览器才会提示。如果我使用onbeforeunload事件,即使在保存页面时它也会提示所有内容。有什么办法可以解决我在javascript中的问题。请通过给我合适的代码来帮助。

4

2 回答 2

2

检查此链接:http ://www.4guysfromrolla.com/webtech/100604-1.shtml

它为您提供有关如何处理 onbeforeunload 事件的信息。

这个想法是在页面上有一个全局标志。当对字段进行任何更改时,此标志设置为 true。单击保存按钮时,需要将此标志设置为 false。

在 onbeforeunload 事件中,检查标志是否为真,然后相应地显示消息。

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 标志。

于 2012-12-02T05:11:54.917 回答
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?"
    }
}​

在此处阅读有关 window.onbeforeunload的更多信息
这是演示的链接

于 2012-12-02T06:00:17.700 回答