我想在用户切换到另一个页面时即将丢弃表单中的更改时发出警告。
if (!confirm("Are you sure")) return false;...
这种消息被认为是好的做法吗?
我应该使用模态面板吗? (更多工作)
谢谢!
答案 0 :(得分:1)
这个问题分为两部分:
confirm()
被视为良好做法。判断第一部分的两个原则是:(1)永远不要丢弃用户输入;(2)不要停止用户的流程。 confirm()
对话框是模态的,这意味着它们可以阻止用户跟踪。他们不得不继续回答这个问题。一般来说,这很糟糕。如果你能以一种不会阻止用户流动的方式来做,那就更好了。 (例如,将输入存储在cookie或服务器上,或通过电子邮件发送给用户的链接以便稍后完成表单。)如果找不到其他方法,则模式对话框可能比丢失输入的数据更好。 / p>
对于第二部分,这取决于您的实施是否可行。我有一种感觉它不会,因为用户总是可以在地址栏中键入内容以远离您的页面。在离开页面之前提示用户而不管转义向量的最可靠方法是使用window
对象的onbeforeunload
事件并返回一个字符串。 Mozilla Developer Network上的实施细节。