2011-01-12 239 views
1

我看到所有这些关于如何使用Javascript进行输入验证的教程(例如检查电子邮件是否有效),但没有任何内容阻止某人加载表单,禁用Javascript,然后提交错误的输入而不通过通过测试。有没有一种方法可以用Javascript进行验证?

我试着想办法让你克服这个问题,我能想到的最好的方法是在输入验证后使用隐藏的输入字段并提交onsubmit,然后使用Javascript插入特殊值。然后如果服务器发现它没有被插入,它可以告诉你有什么错误。

但是,再次,js文件发送给用户,他们可以看到HTML,它也不应该太难以避免这种情况。

我越想越多,我敢肯定,使用JavaScript验证事物是没有意义的,因为无论如何您需要重复服务器端的测试,这就引发了人们为什么要用Javascript来打扰的问题作为验证工具。

我错过了什么吗?

+3

使用Javascript进行验证可以提供更加用户友好的体验。 – 2011-01-12 20:59:04

回答

2

虽然服务器端验证是必须的,但使用Javascript的客户端验证是绝对推荐的。

  • 交互式反馈。用户可以看到他的输入是否有效的即时反馈。
  • 限制页面刷新。服务器端验证需要对服务器进行查询,而客户端则不需要。大多数验证“失败”是由于错过的字段或无效的数据,可以很容易地通过JavaScript验证识别。

有许多图书馆可以帮助添加使用JavaScript的一般客户端验证。他们中的大多数人几乎不需要付出努力就可以融入表格。

1

JavaScript允许您在没有额外网络负载和等待时间的情况下通知用户有关错误和误解。当然,它不会阻止提交有意的错误甚至错误的数据,并且您需要在服务器端执行辅助检查。

1

使客户端验证健壮的唯一方法是在服务器上重复它。

人们打扰客户端验证的原因是用户体验之一。客户端验证提供即时反馈 - 服务器端验证不会。另外,在高负载情况下,通过不允许发布无效表单,将有助于减轻服务器的负担。

1

客户端验证的重点是向用户提供快速反馈,我不想仅仅因为输入了错误的电话号码或错过了其他内容就提交了100次。

所有客户端验证确实会提供更好的用户体验,因为最终您可以信赖客户端从不

0

JavaScript验证可以永远不被信任。这是一种用户友好的方式告诉用户他失败了。 http请求总是可以添加无效数据。 JavaScript正在客户机上运行。客户不能被信任。他们会犯错误,做一些愚蠢的事情,你没有想到要绕过验证,禁用JavaScript以便他们感到安全,创建自定义http请求,因为他们可以“破解”的感觉很酷等。 用户是愚蠢的,邪恶的,笨拙的,不可靠,有时甚至更聪明。

1

客户端验证消除了到服务器的网络往返需求,并改善了用户体验。

服务器端验证可保护数据的完整性。永远不要相信用户,也不要相信程序员。

相关问题