代码之家  ›  专栏  ›  技术社区  ›  Metropolis

为什么要使用javascript验证表单?

  •  9
  • Metropolis  · 技术社区  · 14 年前

    如果您总是需要使用PHP验证表单,那么使用JavaScript验证HTML表单有什么意义?我知道你从中得到了一个速度提升,对用户来说更方便,但除此之外,花在上面的时间值得吗?如果有人对此有任何好的证据,我很乐意听到。

    谢谢你的帮助!
    大都市

    更新

    在收到无数答案后,我想稍微改变一下这个问题。我们都知道,javascript对用户来说更方便,并且提供更快的反馈。我想知道的是:有没有人见过任何“证据”证明它值得吗?或者我们这么做只是因为它让事情变得更好,每个人都说我们应该这样做?速度差异并没有那么大,而且随着互联网的发展,javascript验证将变得更加过时。

    我开始怀疑用javascript验证页面所花费的时间是否可以更好地利用。

    9 回复  |  直到 14 年前
        1
  •  15
  •   Robert Greiner    14 年前

    理想情况下,您可以通过JavaScript和(在您的情况下)PHP进行验证。

    这两种验证方法将协同工作,以确保为最终用户提供最健壮和用户友好的功能。

    您将使用客户端验证来确保填写了所有字段、电子邮件地址有效等。这将提供即时反馈,不会给您的服务器或用户的互联网连接带来负担。

    验证服务器端 安全 . 您可以控制服务器上的所有内容,而不控制客户机上的任何内容。在这里,您可以确保所有输入的数据都是非恶意的和正确的。

    请记住: 如果只进行一种验证,请选择服务器端验证,因为它更安全。 . 你应该 从未 任何类型的安全都依赖于客户端代码。

    使用这两种类型的验证可以为您提供最好的两个方面(响应性和安全性),同时没有任何缺点。当然,这意味着你必须写更多的代码,但在我看来,这是值得的。

    编辑: 对评论的回应

    是的,你必须这样写更多的代码…根据经验,如果对程序员来说更难,那么 对用户更方便 . 在某些预算中,两种类型的验证都没有意义,这是一个你必须做的决定。不管怎样,只要确保服务器端验证是可靠的。

    是的,时间就是金钱,时间 投资 在改善用户体验方面,花费了大量的时间。如果你现在负担不起(最后期限/时间表/预算),那么在你可以的时候做。

        2
  •  2
  •   Liam Spencer    14 年前

    一切都是关于可用性的。用户在重新加载页面之前读取所犯的错误要比连续提交和重新加载页面方便得多。我认为,它还可以通过一些Ajax和类似的工具提供更好的外观,而不是重新加载页面和非常难看的红色错误消息。那么优势呢?比单独进行服务器端验证更有用。

        3
  •  0
  •   daotoad    14 年前

    提供更好的用户体验。

    JS验证的反馈速度更快,因此比表单提交时的服务器端验证要好。

        4
  •  0
  •   ThatBlairGuy    14 年前

    Javascript验证(如果可用)的主要目的是提高用户体验。到服务器的往返需要页面加载,并且在重新绘制时相关的恼人的闪烁。在javascript代码中验证允许您显示一条不包含所有这些内容的消息。

    也就是说,服务器端验证仍然是必需的,因为javascript并不总是可用的(noscript非常流行),而且因为恶意用户将绕过javascript。

        5
  •  0
  •   hookenz    14 年前

    特别是对于数据库支持的网站,通常需要进行服务器端验证。例如,确保将有效数据输入数据库或其他系统。根据网站正在更新的内容,这可能是绝对关键的。

    但是,客户端验证可以提供更好的用户体验。它可以用来提供即时反馈。例如,当您将焦点从文本框移开时,验证程序可以提供即时反馈,当您填写一个长而复杂的表单时,这种反馈非常好。

    归根结底,您仍然需要将良好的数据输入到数据库中。而且存储在其中的信息越正确,系统的问题就越少。你需要两者兼而有之。

    例如,如果将来有人更新了网站代码并破坏了验证,该怎么办?或者有人写了一个脚本来自动输入数据,绕过Web前端的所有验证?

    我再说一遍。你需要两者兼而有之。

        6
  •  0
  •   Iryna    14 年前

    …我认为你也在保持你的业力清洁,当你的成百上千的用户不希望你为了让他们填写5-7个字段(带文本区)而在下一页上被告知,他们错误地输入了他们的电子邮件,所以他们必须重新开始:d 合并javascript不会占用我很多时间,我说一个表单最多1-2分钟。它节省了很多我的用户的神经细胞。做一个人道主义者!爱你的邻居!)

        7
  •  0
  •   Savageman    14 年前

    客户端验证允许增加用户体验。你给用户的反馈会减少挫折感,减少错误,增加转换,增加金钱。 这种验证通常有更好的响应率,这是非常有价值的。

    高质量的软件需要这样做。用户感到快乐,他们会传播他们的快乐。体验不好的用户不会来,也不会告诉他的朋友。

    这不仅仅是你做生意和销售时的装饰。投资回报是值得的。

        8
  •  0
  •   Amelia    14 年前

    容易的。

    帮助用户输入正确格式的数据。 PHP确保在进一步处理之前清除进入脚本的内容。

    当然,这两件事你都得做。用户需要它,客户需要它,坦率地说,您认为在提交之后很快就会得到php错误消息。

    我认为不必编写额外的.js代码,这可能会耗尽你的时间/预算,这一论点有任何不足之处。有这么多的lib和脚本,任何一个都可以让您在任何时候设置disco验证。但是,不要对如何处理眼糖感到不知所措。.js验证只是为了帮助您。不要给人留下深刻印象。

        9
  •  -9
  •   Jes    14 年前

    php运行serverside,javascript运行clientside。当您可以让客户机进行验证时,您不希望服务器处理表单验证。此外,它还节省了带宽。