HTML错误消息重复得太快

时间:2011-10-27 23:19:13

标签: javascript dhtml user-experience

从提交按钮的onClick,我在DIV中显示验证错误:

msgStr = validate(...);
document.getElementById("msgArea").innerHTML = msgStr;

但是如果用户再次单击提交(可能更改数据但得到相同的验证错误),则没有反馈他们提交实际上做了任何事情。该页面位于“冻结”(对用户)。

我尝试在调用验证之前清除该区域:

document.getElementById("msgArea").innerHTML = '';
msgStr = validate();
document.getElementById("msgArea").innerHTML = msgStr;

但这并没有显示任何效果。我假设浏览器没有时间在设置相同的msgStr之前更新渲染,或者它发生得太快以至于用户没有看到“闪存”。

有关如何在这种情况下提供反馈的任何建议吗?

3 个答案:

答案 0 :(得分:1)

由于闪光太快,您很可能看不到它的变化。如果你正在使用javascript库(jquery,yui等等),你可以使用淡入功能使其更加引人注目。如果没有,您可以使用一系列计时器和样式更改来使更改更加明显。这是一个演示如何做到这一点的小提琴:http://jsfiddle.net/cbargren/S6ZjC/

答案 1 :(得分:0)

听起来像JavaScript可能会在某处死亡。

在Google Chrome中打开您的页面,然后转到“工具> JavaScript控制台”。

如果它坏了,您将看到红色错误消息。从那里你有更好的机会知道问题是什么。如果您仍然难过,请告诉我们您与其他任何有用的代码相关的错误。

答案 2 :(得分:0)

如前所述,问题是由于您的步骤是连续的,但实际上从用户的角度来看是近乎瞬间发生的。

我希望将一个“更新”状态应用于表单(例如:一个类),它以一些小的方式改变验证消息。这样,在验证时,“udpated”状态被移除(即,数据再次“陈旧”),直到用户再次改变某些东西为止。这样可以更好地进行数据的聚焦和/或更改(因此您需要保留内容,直到更新字段为止)。