简介
基本的方式是在表单发生onsubmit事件的时候,遍历表单所有元素的class属性而执行需要验证。如果验证失败,则显示验证建议并阻止表单提交。
DEMO:http://tetlaw.id.au/upload/dev/validation/valid.html
下载:http://tetlaw.id.au/upload/dev/validation/validation1.5.3.zip
首先嵌入javascript库,一般写入header里面(注意写代码的时候把全角的<>换成半角的):
<script src="prototype.js" type="text/javascript"></script>
<script src=”validation.js” type=”text/javascript”></script>
然后像下面一样写表单元素,在class属性中写入需要的验证:<input class="required validate-number" id="field1" name="field1" />
最后通过如下的方式通过form对象或者form的id来激活验证
<script type="text/javascript">
new Validation('form-id'); // OR new Validation(document.forms[0]);
</script>
它里面内置了大量的检验,但是也有包含自己定制检验代码的扩展。
验证时也避免了验证通过css属性设置display:none的区域或者元素的子元素。这种方式可以保证只能得到在form中是可见的且class的属性值为required的区域。
选项
下面是一个加入验证元素的可用的类清单:
1. required (非空白)
2. validate-number (合法的数:比如33,3.3)
3. validate-digits (仅是数字)
4. validate-alpha (仅是字母)
5. validate-alphanum (仅是数字和字母)
6. validate-date (合法的时间)
7. validate-email (合法的Email地址)
8. validate-url (合法的URL)
9. validate-date-au (日期规则; dd/mm/yyyy)
10. validate-currency-dollar (合法的美元值)
11. validate-one-required (至少一个多选/单选项被选择 - 见后*)
*为了使用validate-one-required验证符,你必须把该类名只放入到一个checkbox/rediao按钮(最后一个可能是最合适)且所有的input元素应该处于一个父元素之下,比如div元素。这种方式下验证库能够找到所有的checkbox/rediao按钮且放置验证提示在父元素的底部从而使其出现在一组checkbox/radiao按钮的后面。
当验证初始化时,可以通过可选项{stopOnFirst:ture}来实现停止在第一个验证失败的行为。Demo的例子都是默认的。如果设置了,提交表单时第一个验证失败的提示马上就显示了。
<script type="text/javascript">
new Validation('form-id',{stopOnFirst:true});
</script>
也可以通过可选项{immediate:true}来实现离开一个验证区域时立即进行验证。这发生在表单所有元素的onblur事件上。
在默认情况下验证库给表单的onsubmit事件增加了一个监听器,当验证失败的时候阻止这个事件的进行。如果设置可选项{onSubmit:false},它就不会阻止了。通过这种方式,可以手动的调用自己的javascrip验证函数。
在默认情况下验证库使出现错误的第一个验证域获取焦点。可以通过可选项{focusOnError:false}使它不这样做。
也可以通过可选项{useTitles:true}来使验证器使用表单元素的title属性作为验证错误的提示信息。
通过可选项{onFormValidate:yourFunction;onElementValidate:yourFunction}来设置回调函数。
onFormValidate在表单验证执行之后被调用,获取两个参数:验证结果(true或者false)和表单的符号。onElementValidate在每个表单元素验证之后被调用,也获取两个参数:验证结果(true或者falsh)和表单元素符号。
可以创建自己的页面验证通知元素来替代验证器的错误信息。当脚本创建提示元素,它首先寻找匹配‘advice-’+validate-class- name+‘-’+element.id的元素,如果找不到则寻找匹配’advice-’+element.id的元素。如果表单元素没有id属性将匹配 name属性。如果它找到元素将使他显示。例如在Demo中看Donation这个域。你制作一个普通的验证通知元素,使它的样式为 display : none。
如果也在也面的头部嵌入来自Scriptaculous的文件effect.js,就可以控制验证通知的显示的渐隐渐显效果。<script src="effects.js" type="text/javascript"></script>
CSS Hooks
和上面的验证CSS类一样,验证库用CSS类来指明验证的状态:validation-failed和validation-passed。
这个验证通知元素有一个validation-advice的类,id属性匹配下面这个规则:‘advice-’+validation-class-name+‘-’element.id
所以如果域birthdate用validation-date验证类,则验证通知元素的id为advice-validation-date-birthday。
Javascript API
默认下Javascript类把一个事件观察器绑定到表单的onsubmit事件。如果你喜欢通过自己的javascript提交表单,你依旧可以像下面这样检验表单:
<script type="text/javascript">
var valid = new Validation('form-id', {onSubmit:false});
var result = valid.validate();
</script>
实力方法validate()将返回true或者false。
这个Javascript类有一个实例函数可以reset所有的验证域:
<script type="text/javascript">
var valid = new Validation('form-id');
valid.reset();
</script>
注意这不是reset整个表单而是所有的验证域。
validation类也有一些可以用来独立使用的静态方法:Validation.validate([element OR element id] [, options])
这用所有当前的验证类验证域(或id指的域)。也可以通过可选项{useTitle:true}使域验证器使用元素的标题属性值来作为错误通知信息。
可以通过下面的方式运行一个特殊的验证一个域或者域值。Validation.get('validator-name').test(value [, element])
可以像这样来增加自己的验证器:
Validation.add('class-name', 'Error message text', function(value [, element]) {
return /* do validation here */
});
例如这事一个内置的验证器:
Validation.add('validate-alpha', 'Please use letters only (a-z) in this field.', function (v) {
return Validation.get('IsEmpty').test(v) || /^[a-zA-Z]+$/.test(v)
});
当增加一个新的验证器时,它被通过以CSS类名为关键字加入到一个静态的验证方法组中。必须通过表单元素的class属性来应用自己定制的验证函数.
可以使用Validation.addAllThese() 按照如下的方式比较容易的添加多个验证函数:
Validation.addAllThese([
['required', 'This is a required field.', function(v) {
return !Validation.get('IsEmpty').test(v);
}],
['validate-number', 'Please use numbers only in this field.', function(v) {
return Validation.get('IsEmpty').test(v) || !isNaN(v);
}],
['validate-digits', 'Please use numbers only in this field.', function(v) {
return Validation.get('IsEmpty').test(v) || !/[^\d]/.test(v);
}]
]);
这是通过一个每个元素是有三个元素[className, error, function]的数组的数组。
ajaxcn.org上有一个应用的例子,可以看看http://ajaxcn.org/space/start/2006-05-22/1
分享到:
相关推荐
本文将深入探讨Ajax在表单验证中的应用,特别是基于Prototype框架的实现方式,以及动态验证的重要性。 一、Ajax基础 Ajax的核心是通过JavaScript与服务器进行异步通信,无需刷新整个页面就能获取或更新数据。它由...
ASP基于Prototype的Ajax无刷新登录实例是一个非常适合初学者学习AJAX技术的应用案例。在这个实例中,我们将探讨如何在ASP(Active Server Pages)环境中利用Prototype JavaScript库实现无刷新的用户登录功能,同时...
VanadiumJS就是这样一款专门针对表单验证的JavaScript插件,它以其灵活性、易用性和强大的功能在开发者中受到广泛欢迎。 **1. 功能特性** - **实时验证**:VanadiumJS允许开发者定义一系列验证规则,这些规则会在...
"Really easy field validation with Prototype 1.5.3 中文扩展版"是一个针对Prototype JavaScript库的前端验证插件,旨在简化网页表单的数据验证过程。这个工具以其简单易用和强大的功能著称,并且提供了对多语言的...
- **表单验证**:利用Prototype的DOM操作API进行表单字段的验证和错误提示。 #### 六、Prototype框架的学习资源 - **官方文档**:最权威的学习资源,包含详细的API文档和示例代码。 - **在线教程**:网络上有很多...
**描述:“easyValidation是一个利用Prototype JavaScript库构建的验证框架,它为前端开发提供了简便且强大的表单验证功能。”** 在Web应用程序中,表单验证是必不可少的一部分,它确保用户输入的数据符合预期的...
- **表单验证**:利用Prototype的DOM操作能力,可以轻松实现客户端表单验证。 - **动态内容加载**:通过Ajax技术,可以在不刷新整个页面的情况下加载新的内容。 - **交互式元素**:例如弹出窗口、拖拽功能等,都可以...
例如,图片轮播(滑动门)、日期选择器、表单验证等,大大丰富了jQuery的应用场景。 1. UI组件:如jQuery UI提供了一系列界面组件,如对话框、拖放、排序等。 2. 图表库:如jQuery Flot、Chart.js用于绘制图表,...
10. **实例应用**:文档中包含丰富的示例代码,展示了Prototype在实际项目中的应用,如动态加载内容、表单验证、复杂用户交互等场景,帮助开发者加深理解并迅速上手。 通过学习和实践《prototype.js 1.6 中文文档》...
本文介绍了如何利用 Prototype.js JavaScript 库在表单中结合 Ajax 代码来解决常见的用户体验问题。 简单的 Ajax 表单提交 基于XML的异步JavaScript,简称AJAX,是当前Web创新(称为Web2.0)中的一个王冠。...
- **表单增强**:通过表单验证、自动完成等功能提升用户体验。 - **结合使用的优势**: - **协同工作**:Prototype为script.aculo.us提供了坚实的基础,而script.aculo.us则进一步扩展了Prototype的功能边界,...
vali.js是一款强大的前端验证插件,它为开发者提供了简单易用的API,帮助实现高效且用户体验良好的验证功能。这款插件在2016年2月1日发布的版本(vali20160201)具有一定的历史,但其核心理念和设计思路依然对当前的...
- **表单验证**: 对表单输入进行实时验证,减少用户错误。 - **拖放操作**: 构建拖放功能,使用户能够更直观地操作页面元素。 #### 七、未来展望 - **持续维护**: 虽然 prototype.js 已经不再频繁更新,但其稳定的...
10. **Form**: 包含了一系列与表单相关的功能,如数据验证和操作,提高了表单处理的效率。 11. **Event**: 简化了事件处理,提供了一套跨平台的事件封装机制,便于事件监听和触发。 12. **Position**: 提供了元素...
7. JSValidate - 基于Prototype和Scriptaculous的验证框架,提供简洁的API进行表单验证,但目前仍处于测试阶段。 8. Field validation with Prototype - 结合Prototype和Scriptaculous,提供了丰富的内置验证规则和...
例如,`<canvas>`可以通过JavaScript绘图API创建交互式图形,而`<form>`的`required`属性可以实现表单验证。 这些API和标准共同构成了现代Web开发的基石。Prototype和jQuery简化了JavaScript编程,CSS2.0提供了丰富...
LiveValidation 是一个轻量级的JavaScript框架,专为前端表单验证而设计。它使得在用户输入数据时实时验证表单字段成为可能,从而提供了更流畅、更友好的用户体验。无需等待用户提交表单,就能立即获取反馈,减少...
- **wForms**:提供表单验证、同步和条件判断,简化JavaScript表单处理。 - **Validanguage**:一个集成逻辑的验证框架,支持全局、单个表单或对象设置,有HTML-like和面向对象两种API。 - **LiveValidation**:...