`

基于prototype.js验证框架(validation.js)的三个应用

    博客分类:
  • Ajax
阅读更多
也是很早发在ajaxcn.org上的一片文章, 现在prototype.js手生了, 看了看都不相信是自己写的:(

最近对prototype.js用的比较多,同时发现了一个基于prototype.js的验证框架: validation.js really easy field validation with prototype,下面是我在开发中用到的三个例子.


前提条件:
首先要在html页面中引入几个js
<script type='text/javascript' src='../script/prototype.js'></script>
<script type='text/javascript' src='../script/validation.js'></script>
<script type='text/javascript' src='../script/effects.js'></script>
(可选)
加几段css

input.disabled {
    border: 1px solid #F2F2F2;
    background-color: #F2F2F2;
}input.required, textarea.required {
    border: 1px solid #00A8E6;
}input.validation-failed, textarea.validation-failed {
    border: 1px solid #FF3300;
    color : #FF3300;
}
input.validation-passed, textarea.validation-passed {
    border: 1px solid #00CC00;
    color : #000;
}.validation-advice {
    margin: 5px 0;
    padding: 5px;
    background-color: #FF3300;
    color : #FFF;
    font-weight: bold;
}


应用一:该例子仅使用前台脚本进行验证
需求:
查询条件
当CSO NO、AGREEMENT NO、流水号中任一项有值时,其他项都可为空

2. 当CSO NO、AGREEMENT NO、流水号三项都为空时,TARIFF CODE为必输,其他项选输


<td class = "label">CSO Number</td>
<td><input type="text" name="csoNumber" id = "csoNumber"></td>
<td class = "label">Agreement Number</td>
<td><input type="text" name="agreementNumber" id = "agreementNumber"></td>
<td class = "label">SequenceNumber Number</td>
<td><input type="text" name="sequenceNumber" id = "sequenceNumber"></td>
<td class = "label">Tariff Code</td>
<td><input type="text" name="tariffCode" id = "tariffCode"></td>
<td colspan = "6" align = "center"><button class = "submit" id = "search">Search</button></td>



window.onload = function(){
    // 注册查询按钮事件
    Event.observe("search", "click", function(){
        var validator = Validation.get("IsEmpty");
        if ([$F("csoNumber"), $F("agreementNumber"), $F("sequenceNumber")].all(validator.test)){
            ["required"].all(Validation.test.bind($("tariffCode")));
        }    });


应用二: 该例子通过ajax结合后台来进行验证
需求:
sapid和password必输
且必须从后台数据库找到sapid和password对应的记录, 否则登陆不成功,并给出提示信息


<form method=post action="requisition.html" id = "frmLogin">
    <table align = "center" style = "height:100%">
        <tr>
            <td>
                <fieldset style = "padding:10px">
                <legend>Login</legend>
                    <table>
                        <tr><td colspan = "2"><input type = "hidden" id = "errMsg"></td></tr>
                        <tr>
                            <td class = "label"><span class = "requiredFlag">*</span>SAP ID</td>
                            <td><input type="text" name="sapId" id = "sapId" class = "required"></td>
                        </tr>
                        <tr>
                            <td class = "label"><span class = "requiredFlag">*</span>Password</td>
                            <td><input type="password" name="password" id = "password" class = "required"></td>
                        </tr>
                        <tr>
                            <td colspan = "2" align = "center"><input type = "submit" class = "submit" value = "Login">
                                <button class = "submit" onclick = "Login.goRegister()">Register</button></td>
                        </tr>
                    </table>
            </fieldset>
            </td>
        </tr>
    </table>
</form>


window.onload = function(){
    // 自定义验证器并注册到Validation中
    var validatorName = "validate-login-info";
    Validation.add(validatorName, "", function(){return false;});    // 验证器初始化
    var validator = new Validation('frmLogin', {stopOnFirst:true, immediate:true});    // 提交前进行后台验证
    Event.observe("frmLogin", "submit", function(ev){
        var result = validator.validate();
        if (result){
            var request = new Ajax.Request(
            "http://localhost:8080/agreement/CheckLoginInfo",  // 提交的URL
            {
                method: 'get',
                asynchronous: false,
                parameters: Form.serialize("frmLogin"),
            });
            // 验证不通过,显示出错信息, 并中止提交操作!
            var transport = request.transport;
            if (transport.responseText != ""){
                Validation.get(validatorName).error = transport.responseText;
                [validatorName].all(Validation.test.bind($("errMsg")));
                Event.stop(ev);
            }
        }
    })
}


应用三:
需求:典型注册应用, 密码和确认密码的一致性验证

<form method=post action="" id = "frmRegister">
    <table align = "center" style = "height:100%">
        <tr>
            <td>
                <fieldset style = "padding:10px">
                <legend>Register</legend>
                    <table>
                        <tr>
                            <td class = "label"><span class = "requiredFlag">*</span>SAP ID</td>
                            <td><input type="text" name="sapId" id = "sapId" class = "required"></td>
                        </tr>
                        <tr>
                            <td class = "label"><span class = "requiredFlag">*</span>Password</td>
                            <td><input type="password" name="password" id="password" class = "required"></td>
                        </tr>
                        <tr>
                            <td class = "label"><span class = "requiredFlag">*</span>Re-Password</td>
                            <td><input type="password" name="repassword" id="repassword" class = "validate-identical"></td>
                        </tr>
                        <tr>
                            <td colspan = "2" align = "center"><input type = "submit" class = "submit" value = "Register"></td>
                        </tr>
                    </table>
            </fieldset>
            </td>
        </tr>
    </table>
</form>


window.onload = function(){
    // 添加password一致性验证
    Validation.add("validate-identical", "the value of password and repassword must be identical", function(v){
        return !Validation.get('IsEmpty').test(v) && v == $F("password");
    })    // 验证器注册
    var validator = new Validation('frmRegister', {stopOnFirst:true, immediate:true});
}
分享到:
评论

相关推荐

    jquery.validate Validation .js验证框架 帮助 手册 文档 chm

    jquery.validate Validation .js验证框架 帮助 手册 文档.chm 版本 方面查询 (一)、可选项( options ) 1 (二)插件方法 (jQuery validation) 6 (三、四)选择器及实用工具 (jQuery validation) 7 四、实用工具...

    表单验证类 基于prototype的validation.js

    `validation.js`是一个专门用于前端表单验证的库,它基于Prototype JavaScript框架构建,提供了一种简单且灵活的方式来实现这一功能。 **Prototype框架** 是一个广泛使用的JavaScript库,它扩展了JavaScript语言的...

    基于prototype的表单验证框架rapid-validation-v1.0

    简洁,快速的验证语法 无需编写验证提示信息(当然也支持自定义提示信息) 错误消息在指定地方显示 支持组合验证 Ajax支持 基于prototype.js 支持国际化 易于扩展 基于标准的Html属性...

    FormValidation.js

    `FormValidation.js` 是一个强大且灵活的JavaScript库,专门用于前端表单验证。它提供了丰富的校验规则、样式定制以及对动态添加元素的验证支持,使得开发者能够轻松地创建高效、用户体验良好的表单验证系统。本文将...

    jquery1.4.js + jquery-validation.min.js

    本篇将深入探讨jQuery 1.4.js版本及其与jQuery Validation Plugin的结合使用,帮助开发者更好地理解和应用这两个核心组件。 一、jQuery 1.4.js:jQuery的里程碑版本 jQuery 1.4.js是jQuery库的一个重要里程碑,...

    jquery.validate Validation .js验证框架 帮助 手册 文档.doc

    这个文档主要涵盖了一系列关于jQuery Validate框架的使用方法、可选参数、验证器和实用工具。以下是对这些知识点的详细说明: 1. **启用调试模式**: - `debug` 参数是一个布尔值,默认为 `false`。如果设置为 `...

    jquery.validate.js验证框架_帮助_手册_文档_API_接口

    ### jQuery.validate.js 验证框架知识点详述 #### (一)可选项(options) 在使用 `jQuery.validate.js` 验证框架时,可选项是配置验证行为的重要部分。这些选项允许开发者自定义验证过程中的多种行为,包括调试...

    jquery.validateValidation.js验证框架帮助手册文档.pdf

    `jquery.validateValidation.js`是这个框架的一个实现,可能包含了特定的定制或扩展。 ### (一)、可选项 ( options ) `debug`选项是一个布尔值,默认为`false`。当设置为`true`时,验证错误不会阻止表单提交,这...

    基于Prototype的Validation表单验证插件.rar

    一款基于Prototype的Validation表单验证插件,实现Ajax风格的无刷新表单验证功能,当用户输入完表单,即时显示该项输入是否正确,不正确则会给出提示,适合那些比较喜欢简洁风格,又要求功能准确的用户,本款表单...

    框架验证validation

    在IT行业中,"框架验证validation"通常指的是在开发过程中用于确保数据输入正确性和完整性的机制。这涉及到前端和后端的交互,以防止错误的数据进入系统,提高用户体验,并且保护系统的安全。以下是对这个主题的详细...

    jQuery Validation Engine ( jQuery 表单验证插件)

    jQuery Validation Engine是一款强大的JavaScript库,专门用于实现网页表单的验证功能。它是基于流行的JavaScript库jQuery构建的,为开发者提供了一种优雅的方式来处理用户输入的数据验证。这个插件以其高度可定制性...

    form-validation.js:最可定制JavaScript验证框架

    form-validation.js现场例子vue @ 2 + element-ui特征直观的API。 :bullseye: 异步规则支持。 嵌套对象/ Aray支持。 数组操作(推,弹出,移位,不移位,拼接,反向)支持。 零依赖关系,仅本机Javascript。概述...

    jquery.validationEngine.js

    强大的表单验证控件,验证表单的正确性。

    jquery.validation.js和用法

    `jQuery validation.js` 是一个广泛使用的JavaScript库,用于在客户端验证HTML表单,它极大地简化了前端数据验证的过程。这个库是由Jörn Zaefferer创建并维护,是jQuery插件的一部分,提供了丰富的验证规则和自定义...

    FormValidation完整源码和演示

    FormValidation是一款功能强大的前端表单验证框架,专为开发者提供高效、灵活的验证解决方案。它以其高度可定制性,对HTML data属性的完美支持以及内置的自定义验证器功能而备受推崇。本资源包含了FormValidation的...

    bootstrap3-validation.js-master

    Bootstrap3-validation.js是一个基于Bootstrap 3框架的表单验证插件,主要用于提高用户界面的交互性和数据输入的准确性。在Web开发中,表单验证是一个关键环节,它确保用户提交的数据符合预设的规则,避免无效或错误...

    validation js表单验证

    - **Validation JS**:这是一个开源的JavaScript库,提供了丰富的验证规则和易于使用的API,帮助开发者创建健壮的表单验证机制。 **2. 配置文件解析** - **validation-config.dtd**:DTD(Document Type Definition...

    Really easy field validation with Prototype 1.5.3 中文扩展版

    "Really easy field validation with Prototype 1.5.3 中文扩展版"是一个针对Prototype JavaScript库的前端验证插件,旨在简化网页表单的数据验证过程。这个工具以其简单易用和强大的功能著称,并且提供了对多语言的...

    validation.js在MVC的使用(完整示例)

    **验证在MVC框架中的应用:validation.js的深入解析** 在Web开发中,验证是确保数据质量和用户输入安全的关键步骤。MVC(Model-View-Controller)架构模式为这一过程提供了一个良好的组织结构。本文将深入探讨如何...

    android中非空验证框架validation

    - `sample`目录:这是一个DEMO项目,展示了如何在实际应用中使用Validation框架。 - `build.gradle`文件:用于构建项目的配置文件。 - `README.md`文件:可能包含了关于如何导入和使用框架的说明。 通过分析DEMO...

Global site tag (gtag.js) - Google Analytics