1

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

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

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

4

4 回答 4

6

你可以使用jQuery和它的Validation plugin

于 2009-02-23T05:55:52.907 回答
4

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

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

于 2009-02-23T12:15:31.933 回答
2

在 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() 函数。

标准提供了各种东西(货币、日期、电话、邮编、最小值/最大值、最大长度等),并且有一个击键过滤器;或者,您可以自己滚动 - 最简单的方法是为该字段定义正则表达式,但您可以添加要调用的 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

并且文档在 HTML 文件中 - 但您不能将它们视为 HTML,您必须下载它们然后查看它们,据我所知

于 2009-02-23T13:32:35.227 回答
1

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

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

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

于 2009-02-23T12:51:38.977 回答