当用户在文本框中输入内容并在不知不觉中关闭浏览器时如何提示?
此外,如果用户没有在输入字段中键入任何内容并且如果关闭浏览器,则浏览器应该在没有提示的情况下关闭。只有当用户更改了字段中的某些内容时,浏览器才会提示。如果我使用onbeforeunload
事件,即使在保存页面时它也会提示所有内容。有什么办法可以解决我在javascript中的问题。请通过给我合适的代码来帮助。
当用户在文本框中输入内容并在不知不觉中关闭浏览器时如何提示?
此外,如果用户没有在输入字段中键入任何内容并且如果关闭浏览器,则浏览器应该在没有提示的情况下关闭。只有当用户更改了字段中的某些内容时,浏览器才会提示。如果我使用onbeforeunload
事件,即使在保存页面时它也会提示所有内容。有什么办法可以解决我在javascript中的问题。请通过给我合适的代码来帮助。
检查此链接: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 标志。
您可以使用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?"
}
}