世界上只有一种英雄主义,那就是了解生命而且热爱生命的人。——罗曼·罗兰 内容充实的生命就是长久的生命。我们要以行为而不是以时间来衡量生命。 ——小塞涅卡
 文章:532篇 音乐:34首 视频:10部 图片:43幅 评论:249条 留言:295条 流量:
  当前位置:首页 > 技术天地 >基于prototype.js验证框架(validation.js)的三个应用

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

 
来源:网络     加入时间:2007-8-31       浏览量:369 
字体大小():
选择颜色:
 
 

最近对prototype.js用的比较多,同时发现了一个基于prototype.js的验证框架:validation.js(http://tetlaw.id.au/view/blog/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;
}

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

html代码:
<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>

javascript脚本:
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对应的记录, 否则登陆不成功,并给出提示信息

html代码:
<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>

javascript脚本
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);
   }
  }
 })
}

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

html代码:
<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>

javascript脚本:
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});
}


对本篇文章进行评论
您的称呼: 
您的评论: 

 

上一篇: Photoshop CS2视频教程(推荐) 下一篇: ASP互动视频教程
个人随笔
经典搞笑
技术天地
精彩网页
谈天说地
我的制作
文章排行
  • 北京欢迎你视频下载
  • 绿色风景图
  • 512地震
  • 电影苹果下载
  • 神墓全集下载
  • 澄海3c5.49地图下载
  • 十七大总结
  • 70兰董真实身份
  • 直升机为什么进不去
  • 机器狗病毒
  • 异世之极品奶爸
  • 声音素材库
  • 【概率论与数理统计】在线...
  • 卫星信号接收器参数,安装...
  • b哥的一天下载
  • 国庆节黑板报,国庆节,黑...
  • 1069999301
  • 奥运100天晚会视频
  • 家有儿女动画版
  • 成龙电影全集
  • 各大高校BBS上的100...
  • 电视剧大人物40全集
  • 七界传说第十一卷
  • 友情链接: 阳光地带视频网  当当网  DHC  传奇私服 传世私服  传世私服 魔兽世界私服  魔兽世界私服 机战私服  天龙八部私服  机战私服  鸡腿好 skype   黄海峰的blog PQ秀秀网    理想走进现实  QQ华夏外挂 河南新县高中  橙风娱乐网  有来有去 糊涂小居  楚天导航优购网  leiz's blog 机战私服  传奇私服  好魔域  完美国际私服  魔域私服  新开传奇私服  魔域SF  变态魔域  传奇SF  最新魔域私服  变态魔域私服  传奇SF  完美私服  变态魔域私服 

       推荐分辨率:1024*768  鄂ICP备07011897号   版权所有:西西弗斯(代启蒙)