多年来,我已经习惯了一点JavaScript,但尚未使用任何JavaScript / AJAX库。对于我正在研究的一些新东西,我想使用js库来进行客户端表单验证,并想知道哪个最适合。最好的,我的标准是:快速且易学,占地面积小,与所有流行的浏览器兼容。
编辑:感谢ASP建议,但它们与我无关。对不起,我最初没有提到它,但服务器是运行Apache和PHP的Linux机器。据我所知,我计划对输入进行服务器端验证,但希望客户端验证能够改善用户体验,并尽可能避免服务器拒绝无效输入。
编辑2:抱歉我几个月都没有回复!其他优先事项出现了,并转移了我。我最终做了我自己的验证程序 - 除了在一些答案中提出的好处之外,我正在验证的一些项目很少在其他应用程序中使用,我找不到包含这种验证的库
答案 0 :(得分:6)
您可以使用jQuery,而Validation plugin。
答案 1 :(得分:4)
我自己不使用库,而是潜入某些(如原型,(yui-)ext,看似无处不在的jquery,mootools)从中学习并提取它们提供的一些功能或模式。库(也就是“框架”)包含了我从不需要的大量功能,所以我编写了自己的函数子集。表单检查很难标准化(除了电话号码或电子邮件地址字段之类的东西),所以我认为框架也不会有帮助。我的建议是检查其中一个库是否提供您要查找的功能,和/或使用/重写/复制您可以使用它们的功能。对于大多数开源库,可以下载未压缩的源。
需要说(顺便说一句,也许是众所周知的)客户端表单检查被认为是不够的。您还必须检查输入服务器端。
答案 2 :(得分: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()函数。
标准提供了各种各样的东西(货币,日期,电话,ZIP,最小/最大值,最大长度等),并且有按键过滤器;或者你可以自己动手 - 最简单的方法就是为字段定义一个正则表达式,但你可以添加要调用的Javascript函数来进行验证。
处理程序有一些伪事件可以在字段和表单之前/之后捕获。
除了INPUT语句中的属性之外,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,你必须下载它们然后再查看它们,就我所知道而言
答案 3 :(得分:1)
我使用AJAX在ASP.NET中执行大多数新功能,因此我将ASP.NET验证程序与AJAX扩展程序一起使用,并且它们运行良好。但是,如果您不使用ASP.NET,这对您没有帮助。
大多数主要的JavaScript框架(jQuery,YUI,Prototype等)都具有验证功能,因此您可以考虑它们。但根据您的需要,您可能会认为它太过分了。
以前(在ASP Classic中)我使用了自己的验证脚本,只有6KB;我现在显然不喜欢,因为我喜欢这些框架提供的一致性和润色,但是YMMV。