2011-06-13 46 views
1

我想验证文本,并使用alert()让用户知道文本何时无效。我唯一的问题是,至少对于我来说,FF4并没有采取任何措施来阻止他们执行后退和前进按钮等操作,所以如果文本无效,他们仍然可以按回去,而不会被验证。提醒,防止任何浏览器动作,直到清除

有没有一种方法可以让警报发生,直到警报被清除后才能对浏览器做任何事情?

+0

如果他们禁用他们的JavaScript,它根本就没有关系。验证客户端是一件好事,但应该是对服务器端验证的补充。我的建议是不要忽视限制用户行为的客户端,只是告诉他们这个问题。如果他们在发布数据之前没有修复它,请将它们发送回页面并提供信息。 – Matt 2011-06-13 20:06:19

+0

我会避免使用警报。在PHP方法中可能会更好。 – ngen 2011-06-13 20:06:54

+1

从用户体验角度来看,阻止浏览器的警报非常糟糕。这就是为什么FF4已变成非阻塞警报。我希望其他一些浏览器很快就能遵循这一理念。 – Jan 2011-06-13 20:08:47

回答

6

您可以绑定到window.onbeforeunload,并让用户继续“正确”的方式,直到他们正确。

但是,有些东西告诉我你需要修正你的工作流程,而不是试图绕过用户做他们想做的事情(程序员总是失败)。

0

即使您可以替换浏览器的警报框,该功能仍然内置在浏览器中,所以我认为您不能。

考虑错误显示的替代形式会更好。

1

不,不应该有。过去有真正的模态警报,但它们被疯狂滥用。与无URL弹出窗口等相同。我们摆脱它们是件好事。

在任何情况下,作为网络用户,我希望后退按钮始终安全,不会使应用程序处于不一致的状态。这可能是一个更好的方法

1

我不能真正想到任何重要的事情来验证,以防止任何其他职能,你永远不能真正在客户端实现这一点,如果你真的必须那么你应该设置一个在服务器端的变量中,在该用户的数据库中,可以将其称为user_preventaction,并假设您在加载页面时将其设置为TRUE,直到要验证的输入被验证并设置为FALSE为止,该页面将不会更改。然后,用户尝试访问并阻止任何页面的行为仍为TRUE,它将呈现页面,迫使他们验证您认为非常重要的任何内容,以至于用户甚至可以决定返回。