【问题标题】:What JavaScript library to use for client-side form checking?用于客户端表单检查的 JavaScript 库是什么?
【发布时间】:2009-02-23 05:52:55
【问题描述】:

多年来,我曾涉足过一些纯 JavaScript,但还没有使用过任何 JavaScript/AJAX 库。对于我正在研究的一些新东西,我想使用一个 js 库来进行客户端表单验证,并想知道哪个最适合。最好,我的标准是:快速且易于学习、占用空间小、与所有流行的浏览器兼容。

编辑:感谢 ASP 的建议,但它们与我无关。对不起,我最初没有提到它,但服务器是一个运行 Apache 和 PHP 的 Linux 机器。据我所知,我计划对输入进行服务器端验证,但希望客户端验证能够改善用户体验并尽可能避免服务器拒绝无效输入。

编辑 2:对不起,我好几个月没有回复了!其他优先事项出现了,并转移了我的注意力。我最终做了自己的验证例程 - 除了一些答案中提出的优点之外,我正在验证的一些项目很少在其他应用程序中使用,而且我找不到包含这种验证的库.

【问题讨论】:

  • 我可能是在向皈依者讲道,但请确保您也在服务器端重新验证。客户端的东西应该只是为了方便用户(减少往返等)。

标签: javascript ajax validation client-side


【解决方案1】:

您可以使用jQuery,它是Validation plugin

【讨论】:

  • 我同意,一个非常全面的解决方案。
【解决方案2】:

我自己不使用库,但深入研究了一些库(如原型、(yui-)ext、看似无所不在的 jquery、mootools),以从中学习并提取它们提供的一些功能或模式。这些库(又名“框架”)包含很多我从来不需要的功能,所以我编写了自己的函数子集。表单检查很难标准化(可能电话号码或电子邮件地址字段除外),所以我认为框架也无济于事。我的建议是检查其中一个库是否提供您正在寻找的功能,和/或使用/重写/复制您可以从中使用的功能。对于大多数开源库,可以下载未压缩的源代码。

需要说明的是(顺便说一句,也许众所周知)客户端表单检查被认为是不够的。您还必须检查输入服务器端。

【讨论】:

  • +1:如果您只想做一些基本的表单检查,则不需要 jQuery 的 4000 多行加上验证插件的 1000 多行;我自己的表单验证代码不到 150 行...
【解决方案3】:

在使用 AJAX 库之前,我使用的是 Matthew "Matt" Frank 的 Validation.JS。

基本思想是包含一个 JS 文件,然后在 INPUT 语句中添加属性。

例子:

<input name="start-date" type="text" 
    display-name="Start Date" date="MM/YYYY" required="@getRequired()" />

字段将被验证为 MM/YYYY 样式的日期。显示的任何错误消息都会将该字段称为“开始日期”。 “@”前缀将导致 getRequired() 函数在运行时被评估。

标准提供了各种东西(货币,日期,电话,ZIP,最小值/最大值,最大长度等),并且有一个按键过滤器;或者,您可以自己滚动 - 只需为字段定义正则表达式即可轻松完成,但您可以添加要调用的 Javascript 函数来进行验证。

处理程序可以在字段和表单之前/之后捕获伪事件。

除了 INPUT 语句中的 Attributes 之外,JS 还可以对字段应用验证操作:

// Set field background when in error state
document.MyForm["INVALID-COLOR"]="yellow";

// Show error messages on field blur
document.MyForm["SUPPRESS-ONCHANGE-MESSAGE"]=true;

document.MyForm.MyField.REQUIRED = true;
document.MyForm.MyField.DisplayName="Password";

Validation.JS 为 28K(未压缩)

我费了一番周折,试图找到一个 HTML 文件,您可以轻松找到详细信息,但我无法找到一个可以链接到的独立文件。

源码在这里:

http://code.google.com/p/javascript-form-validation/source/browse/#svn/trunk

DOC 位于 HTML 文件中 - 但您无法将它们视为 HTML,您必须下载它们然后查看它们,据我所知

【讨论】:

  • 这与我在旧 ASP Classic 网站中使用的方法类似。
【解决方案4】:

我在 ASP.NET 中使用 AJAX 完成了大多数新工作,因此我将 ASP.NET 验证器与 AJAX 扩展器一起使用,它们运行良好。但是,如果您不熟悉 ASP.NET,这对您没有帮助。

大多数主要的 JavaScript 框架(jQuery、YUI、Prototype 等)都具有验证功能,因此您可以考虑使用它们。但根据你的需要,你可能会认为它是矫枉过正。

以前(在 ASP Classic 中)我使用自己的验证脚本,它只有 6KB;我现在显然不喜欢,因为我喜欢这些框架提供的一致性和优美性,但是 YMMV。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 2012-09-05
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多