建议的方式在注册表单中标记用户输入中的错误字段?

时间:2012-09-16 03:44:13

标签: php javascript forms validation

这是一个相当开放的问题,但是我想知道在注册表单中验证用户输入的推荐方法是什么,并在尝试之前向用户转发需要更改的信息(如果有的话)。再次提交。现在,我的表单设置有一些HTML属性,如maxlength,但显然不可靠。所以在PHP代码中,我有过滤掉超出长度的字符串,清理输入等等。

但是,如果给出的输入无效,我将PHP代码重定向到注册页面,注册页面只是正常显示,没有用户以前的输入,也没有任何需要更改的指示。

这显然是不可接受的,所以我需要知道我是否应该使用JavaScript作为验证的中间手段并显示指标,或者我是否应该使用会话变量来中继先前的输入,并表示哪些字段显示错误。或者,完全不同的东西。

希望我的问题很清楚,所有的帮助都非常感谢!

编辑:禁用JavaScript的用户是否应该考虑这种类型的现实问题?

1 个答案:

答案 0 :(得分:2)

你的答案很简单:

BOTH

首先,在客户端进行初始验证。 这不是关于进行用户检查/验证/权限级别(至少还没有)。 在您使用AJAX调用来检查某人是否正在尝试使用已注册的电子邮件地址创建帐户,或者那种“安全”(清理......所有内容)时,可能会出现例外情况。检查。

这是关于:“这个字段是否通过了白痴检查”。

这就是JS验证应该是什么。 如果它失败了,在场上设置css类,让人们在视觉上知道某些事情已经发生了。查看css :before:after伪选择器,它们可以让您在样式化之前/之后添加文本或图像(在这种情况下为input

input.valid:before { content : url("checkmark.png") }
input.invalid:after { content : url("big-red-x.png") }

您可以动态添加工具提示或消息横幅,以提供有关错误的用户友好信息。

所有这些东西都可以让那些知道如何提交POST请求的人使用其中一个开发友好的网络解决方案(或者只是真正无聊的人,他们将使用他们自己的脚本服务器,如果您的网站是开放的。)

这就是为什么你仍然需要使用PHP进行验证。

这也是您清理 一切 (或使用PDO作为数据库访问层,并使用其预先清理的解决方案)的时间。 然后你就可以开始向你的数据库寻找权威和诸如此类的东西了。

如果在PHP方面出现错误,请将它们转储回已经存在的页面,并将旧值填入。

从那里,触发JS验证错误,带有一些服务器端消息...... ...并再次运行JS验证,以获取字段中的错误 ...(对于非JS人员,虽然你可以在页面加载中隐藏/删除它)包含一个静态横幅,用于保存你在PHP中遇到的错误列表。

这可以达到您想要的深度,并且您可以通过一系列AJAX调用来完成所有这些操作,将PHP错误返回到错误数组中,返回到页面,进行解析或者应用于不正确的领域,或者放在某个地方的中央横幅......

就像你说的,这是一个非常开放的问题。

从客户的角度来说,你的目标是高层次的,  1.当出现错误时,提供响应(/即时)用户友好的反馈  2.使反馈简洁,明确,可操作  3.尽可能多地做而不会让我重写所有内容,或者在页面之间来回导航 - 最终,梦想是在填写表单和在我试图访问的内容之间进行0页更改