jQuery框架学习第十一天:实战jQuery表单验证及jQuery自动完成提示插件

  jQuery框架学习第一天:开始认识jQuery
jQuery框架学习第二天:jQuery中万能的选择器
jQuery框架学习第三天:如何管理jQuery包装集
jQuery框架学习第四天:使用jQuery操作元素的属性与样式
jQuery框架学习第五天:事件与事件对象
jQuery框架学习第六天:jQuery中的Ajax应用
jQuery框架学习第七天:jQuery动画–jQuery让页面动起来!
jQuery框架学习第八天:ASP.NET jQuery实施方案
jQuery框架学习第九天:jQuery工具函数介绍与使用
jQuery框架学习第十天:实战jQueryUI常用功能
jQuery框架学习第十一天:实战jQuery表单验证及jQuery自动完成提示插件


一.摘要

本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些许秘籍.

本文是介绍两个最常用的jQuery插件. 分别用于表单验证和自动完成提示(类似google suggest).

 

二.前言

研究别人的作品真是一件花时间而且痛苦的过程. 当然也和本人英文不好有关. 总觉得控件作者写了很多文档但是都不够系统, 需要深入研究很多的实例后才能了解作者的思路.所以学习和研究一个插件需要很高成本, 如果发现了Bug并修复需要的成本也是未知数(本次我花了较少的时间解决了自动完成提示插件的一个中文bug, 但是如果复杂的bug就不会这么简单了.).

对于简单应用我首先推荐上文中的jQuery UI. 但是jQuery UI解决的问题有限. 使用jQuery插件是我们最后的一个好办法---还算是好办法, 起码比自己开发要好吧?

很多jQuery的插件编码异常优美, 看一看艺龙首页现在的城市输入框控件, 除了需要为输入框手工添加很多很多属性(onkeyup, onkeydown等等), 而且还不够通用, 占用服务器资源和网络资源.但是当初也是花费了很久的时间完成的作品.

站在巨人的肩膀上, 让我感觉写脚本和写设计C#程序一样, 都有高度和深度可以挖掘. 除了使用作者开发好的功能, 还可以学习如何开发和封装javascript控件. 看过优秀的jQuery插件作者的代码和设计思想后, 常常自叹设计水平差距居然如此之大, 增加自认为脚本高手, 比较过后就是C#程序员和架构师之间的差距.

希望大家通过本章节介绍的两个插件, 除了学会如何使用,  还能够略微领悟到如何封装和设计javascript控件.

 

三.表单验证插件 validate

在提交表单前常要对用户输入进行校验.ASP.NET的验证控件就是用于此目的, 可以同时进行客户端和服务器端验证. 但是验证控件并没有被所有项目采用. 而且在MVC项目中经常使用自己的客户端验证框架.

在比较了若干表单验证插件后, 决定采用validate插件. 因为其使用简单并且灵活.

插件首页:

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

插件文档:

http://docs.jquery.com/Plugins/Validation

配置说明:

http://docs.jquery.com/Plugins/Validation/validate#options

1.应用实例

实例效果:

实例代码:

 

<% @ Page Language = " C# "   %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head  id ="Head1"  runat ="server" >
    
< title > jQuery PlugIn - 表单验证插件实例 Validate  </ title >
    
<!-- black-tie,blitzer,blitzer,dot-luv,excite-bike,hot-sneaks,humanity,mint-choc,redmond,smoothness,south-street,start,swanky-purse,trontastic,ui-darkness,ui-lightness,vader -->
    
< link  rel ="stylesheet"  type ="text/css"  href ="<%=WebConfig.ResourceServer +" /JsLib/jquery/themes/redmond/style.css"% > " />
    
< script  type ="text/javascript"  src ="<% =WebConfig.ResourceServer %>/JsLib/jquery/jquery-min-lastest.js" ></ script >
    
< script  type ="text/javascript"  src ="<% =WebConfig.ResourceServer %>/JsLib/jquery/ui/jquery-ui-all-min-lastest.js" ></ script >
    
< script  type ="text/javascript"  src ="<% =WebConfig.ResourceServer %>/JsLib/jquery/plugin/jquery.validate/jquery.validate.min.js" ></ script >
    
< script  type ="text/javascript"  src ="<% =WebConfig.ResourceServer %>/JsLib/jquery/plugin/jquery.validate/localization/messages_cn.js" ></ script >
        
    
<%   if  ( false )
       {
%> < script  src ="~/js/jquery-vsdoc-lastest.js"  type ="text/javascript" ></ script >
    
<%  } %>
    
< script  type ="text/javascript" >
        
/* ========== 必须放在头部加载的语句块. 尽量避免使用 ========== */
    
</ script >
    
< style  type ="text/css" >
        body
        
{
            font-size
: 12px ;
        
}
        
/*  form中显示文字的label  */
        .slabel
        
{
            width
: 100px ;
            display
:  -moz-inline-box ;
            line-height
:  1.8 ;
            display
:  inline-block ;
            text-align
: right ;
        
}
        
/*  出错样式  */
        input.error, textarea.error
        
{
            border
:  solid 1px #CD0A0A ;
        
}
        label.error
        
{
            color
: #CD0A0A ;
            margin-left
: 5px ;
        
}
        
/*  深红色文字  */
        .textred
        
{
            color
: #CD0A0A ;
        
}
    
</ style >
</ head >
< body >
    
< form  id ="commentForm"  method ="get"  action ="" >
    
< fieldset  style ="width:500px;" >< legend > 表单验证 </ legend >
        
< p >< label  for ="cname"  class ="slabel" >< em  class ="textred" > * </ em >  姓名: </ label >
            
< input  id ="cname"  name ="name"  size ="25"  class ="required"  minlength ="2"   />
        
</ p >
        
< p >< label  for ="cemail"  class ="slabel" >< em  class ="textred" > * </ em >  E-Mail: </ label >
            
< input  id ="cemail"  name ="email"  size ="25" />
        
</ p >
        
< p >< label  for ="curl"  class ="slabel" > 网址: </ label >             
            
< input  id ="curl"  name ="url"  size ="25"  class ="url"  value =""   />
        
</ p >
        
< p >< label  for ="ccomment"  class ="slabel" >< em  class ="textred" > * </ em >  内容: </ label >
            
< textarea  rows ="2"  id ="ccomment"  name ="comment"  cols ="20"  class ="required"  style ="height:80px;" ></ textarea >
        
</ p >
        
< style ="text-align:center;" >
            
< input  class ="submit"  type ="submit"  value ="提交"   />
        
</ p >
    
</ fieldset >
    
</ form >
    
< script  type ="text/javascript" >
       
/* ==========用户自定义方法========== */

       
/* ==========事件绑定========== */
       $(
function ()
       {

       });

       
/* ==========加载时执行的语句========== */
       $(
function ()
       {
           $(
" #commentForm " ).validate(
           {
               errorClass: 
" error " ,
               submitHandler: 
function (form)
               {
                   
// 如果想提交表单, 需要使用form.submit()而不要使用$(form).submit()
                   alert( " submitted! " );
               },
               rules: {
                   
// 为name为email的控件添加两个验证方法:required()和email()
                   email: { required:  true , email:  true  }
               },
               messages: {
                   
// 为name为email的控件的required()和email()验证方法设置验证失败的消息内容
                   email: {required: " 需要输入电子邮箱 " , email: " 电子邮箱格式不正确 " }
               }

           });
       });        
    
</ script >
</ body >
</ html >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值