摘要: 网站开发中常常会用到提示信息,我们首先会想到用 alert(‘提示信息’)进行提示,但是这样往往不是很美观。所以我们用弹出层(div)加一些样式,这样就显得比较美观。废话少说,代码贴出来吧//JSfunction showDetail(str,url) { //背景 var bgObj=document.getElementById("bgDiv"); bgObj.style.width = document.body.offsetWidth + "px"; bgObj.style.height = screen.height + "px";//定义窗口 var msgObj=document阅读全文
posted @ 2009-02-05 15:44 快乐之道 阅读(3204) 评论(4) 编辑

进程:工厂搬砖头,10个工人搬完1000个砖头
线程:每个工人,搬完100个砖头,就是一个任务
采用线程,异步搬:
手工去搬,10个工人同时搬,效率高,异步执行,如果不采用线程,等第一个人搬完后第二个人才搬,那就慢了
什么时候不能用线程:
如果要用小车来搬,只有一个小车,那么,在这样的情况下,就不应该用线程,因为只有一个小车,各个线程都在争夺和等待这个小车,所以不能用线程。如果这个时候还要用线程,则导致资源浪费,

因为每个线程都有自己的资源,如包工头(CPU)同一时间要管理这10个工人,而只有一个工人实际在做事。
线程的销毁:在销毁的时候需要考虑一些问题,比如搬砖头时,你不可能在一个工人搬到一半的时候,你将他销毁,那砖头往哪放呢?


1,.net里使用线程
.net里使用线程,用thread类,定义线程,启动,销毁,全部包括在这个类里
定义一个线程,必须指定这个线程的函数,也就是这个线程是做什么的,搬砖头呢还是挑水
EG:
Thread t  = new Thread( new ThreadStart( st.WorkerMethod ) );
t.Start ();
public  void WorkerMethod()
{
Console.WriteLine ("AA ");
}
2,如果使用带有参数的线程
线程本身是不能带参数的,只能在类里定义一个全局变量,线程前先给这个变量赋值,然后在线程的函数里,去使用这个变量,以达到传参数的目的
EG:
public class SimpleThread
 {
  private string procParameter = "";
  public  SimpleThread (string strPara)
  {
   procParameter = strPara;
   
  }
  public  void WorkerMethod()
  {
   Console.WriteLine ("参数输入为: " + procParameter);
  }
 }
 class MainClass
 {
  /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
   SimpleThread st = new SimpleThread("这是参数字符串!");
   Thread t  = new Thread( new ThreadStart( st.WorkerMethod ) );
   t.Start ();
   t.Join (Timeout.Infinite);

  }
 }

3,线程和委托
委托的目的:类似C++的指钟,就是要把函数当做参数来传递


4,应用程序域
10个工人各自搬各自的,隔离开,不相互受影响,一个人抱怨不搬了,不影响其他人,电脑里也是一样的情况,各个应用程序间不能干扰,程序间不能访问,并且一个程序死了,整个电脑部能死机。

5,线程池
就如内存,如果工人搬砖头,突然有2个工人因为什么原因不能搬了,那么从线程池里调用其他线程来做,性能好,创建一个线程需要浪费时间和资源


6,异步调用
调用WebService为例
同步:调用一个WebService时,调用完了,才执行下面的代码,如果在调用的时候,阻塞了,那么就要等待很久
异步调用:调用WebService,代码继续往下执行,WebService执行完了后,再传回到接收器对象。

7,多线程的应用,利用线程排序
排序1000个数,如果一个线程排,需要1000毫秒
如果10个线程排,则只需要大概100毫秒
当然,排序的时候a[i] a[i+1],同时只能有一个线程对他进行操作
所以,在For里面,i和i+1交换的时候,需要事先进行锁定。
 for (int t = 0; t < x; t++)//X为线程数
            {
                Thread thread = new Thread(new ThreadStart(Sort));//Sort排序的方法
                thread.Name = Convert.ToString(t);
                thread.Start();
            }


 public void Sort()
        {
            try
            {
                while (true)
                {
                    swaped = false;
                    for (int j = 0; j < valueArray.Length - 1; j++)
                    {
                        lock (typeof(Thread))//锁定
                       
                            if (valueArray[j] > valueArray[j + 1])
                            {
                                int T = valueArray[j];
                                valueArray[j] = valueArray[j + 1];
                                valueArray[j + 1] = T;
                                swaped = true;
                            }
                        }
                    }
                    Thread.Sleep(1);
                    if (!swaped) { break; }
                }
                Thread.CurrentThread.Abort();
            }
            catch (Exception ex)
            {
                if (Interlocked.Increment(ref threadCounter) == Convert.ToInt64(ddlThreadNum.SelectedItem.ToString().ToString().Trim()))
                    Display();
            }
        }

posted @ 2011-11-24 22:09 快乐之道 阅读(7) 评论(0) 编辑
并发数 * 为每个连接提供的带宽 

假设理想的速度是能够为每个连接提供40KB/S的带宽,而此刻同时有1000

人向服务器发出请求,那么1000*40/1024=39M的带宽就可保证计设中的速

度。
posted @ 2011-07-03 21:01 快乐之道 阅读(229) 评论(0) 编辑

SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。

 

SQL Server 2005 数据引擎是本企业数据管理解决方案的核心。此外 SQL Server 2005 结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域。

与 Microsoft Visual Studio、Microsoft Office System 以及新的开发工具包(包括 Business Intelligence Development Studio)的紧密集成使 SQL Server 2005 与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,SQL Server 2005 都可以为您提供创新的解决方案,帮助您从数据中更多地获益。

 

 


SQL Server 2005 Enterprise Edition(32 位和 64 位)
Enterprise Edition 达到了支持超大型企业进行联机事务处理 (OLTP)、高度复杂的数据分析、数据仓库系统和网站所需的性能水平。Enterprise Edition 的全面商业智能和分析能力及其高可用性功能(如故障转移群集),使它可以处理大多数关键业务的企业工作负荷。Enterprise Edition 是最全面的 SQL Server 版本,是超大型企业的理想选择,能够满足最复杂的要求。该版本还推出了一种适用于 32 位或 64 位平台的 120 天 Evaluation Edition。

 

SQL Server 2005 Standard Edition(32 位和 64 位)
Standard Edition 是适合中小型企业的数据管理和分析平台。它包括电子商务、数据仓库和业务流解决方案所需的基本功能。Standard Edition 的集成商业智能和高可用性功能可以为企业提供支持其运营所需的基本功能。Standard Edition 是需要全面的数据管理和分析平台的中小型企业的理想选择。

 

SQL Server 2005 Workgroup Edition(仅适用于 32 位)
对于那些需要在大小和用户数量上没有限制的数据库的小型企业,Workgroup Edition 是理想的数据管理解决方案。Workgroup Edition 可以用作前端 Web 服务器,也可以用于部门或分支机构的运营。它包括 SQL Server 产品系列的核心数据库功能,并且可以轻松地升级至 Standard Edition 或 Enterprise Edition。Workgroup Edition 是理想的入门级数据库,具有可靠、功能强大且易于管理的特点。

 

SQL Server 2005 Developer Edition(32 位和 64 位)
Developer Edition 使开发人员可以在 SQL Server 上生成任何类型的应用程序。它包括 SQL Server 2005 Enterprise Edition 的所有功能,但有许可限制,只能用于开发和测试系统,而不能用作生产服务器。Developer Edition 是独立软件供应商 (ISV)、咨询人员、系统集成商、解决方案供应商以及创建和测试应用程序的企业开发人员的理想选择。Developer Edition 可以根据生产需要升级至 SQL Server 2005 Enterprise Edition。

 

SQL Server 2005 Express Edition(仅适用于 32 位)
SQL Server Express 是一个免费、易用且便于管理的数据库。SQL Server Express 与 Microsoft Visual Studio 2005 集成在一起,可以轻松开发功能丰富、存储安全、可快速部署的数据驱动应用程序。SQL Server Express 是免费的,可以再分发(受制于协议),还可以起到客户端数据库以及基本服务器数据库的作用。SQL Server Express 是低端 ISV、低端服务器用户、创建 Web 应用程序的非专业开发人员以及创建客户端应用程序的编程爱好者的理想选择


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Tercel99/archive/2008/10/04/3015848.aspx
posted @ 2011-06-22 13:44 快乐之道 阅读(57) 评论(0) 编辑

jquery.validate.js是jquery旗下的一个验证框架,借助jquery的优势,我们可以迅速验证一些常见的输入,并且可以自己扩充自己的验证方法,并且对国际化也有很好的支持

使用这个函数很简单,看以下的代码

Html代码 1.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"    
2.                    "http://www.w3.org/TR/html4/loose.dtd">  
3.<html>  
4.<head>  
5.  <script src="http://code.jquery.com/jquery-latest.js%22%3E%3C/script>  
6.  <link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.css" type="text/css" media="screen" />  
7.<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js%22%3E%3C/script>  
8.<style type="text/css">  
9.* { font-family: Verdana; font-size: 96%; }   
10.label { width: 10em; float: left; }   
11.label.error { float: none; color: red; padding-left: .5em; vertical-align: top; }   
12.p { clear: both; }   
13..submit { margin-left: 12em; }   
14.em { font-weight: bold; padding-right: 1em; vertical-align: top; }   
15.</style>  
16.  <script>  
17.  $(document).ready(function(){   
18.    $("#commentForm").validate();   
19.  });   
20.  </script>  
21.     
22.</head>  
23.<body>  
24.     
25.  
26. <form class="cmxform" id="commentForm" method="get" action="">  
27. <fieldset>  
28.   <legend>A simple comment form with submit validation and default messages</legend>  
29.   <p>  
30.     <label for="cname">Name</label>  
31.     <em>*</em><input id="cname" name="name" size="25" class="required" minlength="2" />  
32.   </p>  
33.   <p>  
34.     <label for="cemail">E-Mail</label>  
35.     <em>*</em><input id="cemail" name="email" size="25"  class="required email" />  
36.   </p>  
37.   <p>  
38.     <label for="curl">URL</label>  
39.     <em>  </em><input id="curl" name="url" size="25"  class="url" value="" />  
40.   </p>  
41.   <p>  
42.     <label for="ccomment">Your comment</label>  
43.     <em>*</em><textarea id="ccomment" name="comment" cols="22"  class="required"></textarea>  
44.   </p>  
45.   <p>  
46.     <input class="submit" type="submit" value="Submit"/>  
47.   </p>  
48. </fieldset>  
49. </form>  
50.</body>  
51.</html>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script src="http://code.jquery.com/jquery-latest.js%22%3E%3C/script> <link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.css" type="text/css" media="screen" /> <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js%22%3E%3C/script> <style type="text/css"> * { font-family: Verdana; font-size: 96%; } label { width: 10em; float: left; } label.error { float: none; color: red; padding-left: .5em; vertical-align: top; } p { clear: both; } .submit { margin-left: 12em; } em { font-weight: bold; padding-right: 1em; vertical-align: top; } </style> <script> $(document).ready(function(){ $("#commentForm").validate(); }); </script> </head> <body> <form class="cmxform" id="commentForm" method="get" action=""> <fieldset> <legend>A simple comment form with submit validation and default messages</legend> <p> <label for="cname">Name</label> <em>*</em><input id="cname" name="name" size="25" class="required" minlength="2" /> </p> <p> <label for="cemail">E-Mail</label> <em>*</em><input id="cemail" name="email" size="25" class="required email" /> </p> <p> <label for="curl">URL</label> <em> </em><input id="curl" name="url" size="25" class="url" value="" /> </p> <p> <label for="ccomment">Your comment</label> <em>*</em><textarea id="ccomment" name="comment" cols="22" class="required"></textarea> </p> <p> <input class="submit" type="submit" value="Submit"/> </p> </fieldset> </form> </body> </html>  总结,我们只要在加入如下的JAVASCRIPT代码,就可以把指定的FORM加上验证

Html代码
1.$(document).ready(function(){   
2.   $("#commentForm").validate();   
3. });  
 $(document).ready(function(){ $("#commentForm").validate(); });  不过我们还要在需要验证的INPUT里面class加入required说明是必填项,其他的就是验证相关数据比如email就是验证email的数据结构

以下列出validate自带的默认验证

        required: "必选字段",
        remote: "请修正该字段",
        email: "请输入正确格式的电子邮件",
        url: "请输入合法的网址",
        date: "请输入合法的日期",
        dateISO: "请输入合法的日期 (ISO).",
        number: "请输入合法的数字",
        digits: "只能输入整数",
        creditcard: "请输入合法的信用卡号",
        equalTo: "请再次输入相同的值",
        accept: "请输入拥有合法后缀名的字符串",
        maxlength: jQuery.format("请输入一个长度最多是 {0} 的字符串"),
        minlength: jQuery.format("请输入一个长度最少是 {0} 的字符串"),
        rangelength: jQuery.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
        range: jQuery.format("请输入一个介于 {0} 和 {1} 之间的值"),
        max: jQuery.format("请输入一个最大为 {0} 的值"),
        min: jQuery.format("请输入一个最小为 {0} 的值")

validate ()的可选项
debug:进行调试模式
$(".selector").validate   ({debug: true})   把调试设置为默认

$.validator.setDefaults   ({debug: true}) submitHandler:用其他方式替代默认的SUBMIT,比如用AJAX的方式提交

$(".selector").validate   ({submitHandler: function(form) { $(form).ajaxSubmit();}}) ignore:忽略某些元素不验证

$("#myform").validate   ({ignore: ".ignore"}) rules: 默认下根据form的classes, attributes, metadata判断,但也可以在validate函数里面声明
Key/value 可自定义规则. Key是对象的名字 value是对象的规则,可以组合使用 class/attribute/metadata rules.

以下代码特别验证selector类中name='name'是必填项并且 email是既是必填又要符合email的格式

$(".selector").validate ({rules: {// simple rule, converted to {required:true}name: "required",// compound ruleemail: {required: true,email: true}}}) messages:更改默认的提示信息

$(".selector").validate ({rules: {name: "required",email: {required: true,email: true}},messages: {name: "Please specify your name",email: {required: "We need your email address to contact you",email: "Your email address must be in the format of name@domain.com"}}}) groups:定义一个组,把几个地方的出错信息同意放在一个地方,用errorPlacement控制把出错信息放在哪里

$("#myform").validate({groups: {username: "fname lname"},errorPlacement: function(error, element) {if (element.attr("name") == "fname" || element.attr("name") == "lname" )error.insertAfter("#lastname");elseerror.insertAfter(element);},debug:true})转载于:http://blog.csdn.net/wangyun_java/archive/2010/11/17/6015083.aspx

Jquery validate 验证
(2010-03-30 09:45:04)
转载
标签:
jquery
validate
验证
it
分类:JavaScript

jQuery校验

一导入js库

<script src="../js/jquery.js" type="text/javascript"></script>
<script src="../js/jquery.validate.js" type="text/javascript"></script>

二、默认校验规则

(1)required:true               必输字段
(2)remote:"check.php"          使用ajax方法调用check.php验证输入值
(3)email:true                  必须输入正确格式的电子邮件
(4)url:true                    必须输入正确格式的网址
(5)date:true                   必须输入正确格式的日期 日期校验ie6出错,慎用
(6)dateISO:true                必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性
(7)number:true                 必须输入合法的数字(负数,小数)
(8)digits:true                 必须输入整数
(9)creditcard:                 必须输入合法的信用卡号
(10)equalTo:"#field"           输入值必须和#field相同
(11)accept:                    输入拥有合法后缀名的字符串(上传文件的后缀)
(12)maxlength:5                输入长度最多是5的字符串(汉字算一个字符)
(13)minlength:10               输入长度最小是10的字符串(汉字算一个字符)
(14)rangelength:[5,10]         输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
(15)range:[5,10]               输入值必须介于 5 和 10 之间
(16)max:5                      输入值不能大于5
(17)min:10                     输入值不能小于10

三、默认的提示

messages: {
    required: "This field is required.",
    remote: "Please fix this field.",
    email: "Please enter a valid email address.",
    url: "Please enter a valid URL.",
    date: "Please enter a valid date.",
    dateISO: "Please enter a valid date (ISO).",
    dateDE: "Bitte geben Sie ein g眉ltiges Datum ein.",
    number: "Please enter a valid number.",
    numberDE: "Bitte geben Sie eine Nummer ein.",
    digits: "Please enter only digits",
    creditcard: "Please enter a valid credit card number.",
    equalTo: "Please enter the same value again.",
    accept: "Please enter a value with a valid extension.",
    maxlength: $.validator.format("Please enter no more than {0} characters."),
    minlength: $.validator.format("Please enter at least {0} characters."),
    rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
    range: $.validator.format("Please enter a value between {0} and {1}."),
    max: $.validator.format("Please enter a value less than or equal to {0}."),
    min: $.validator.format("Please enter a value greater than or equal to {0}.")
},

如需要修改,可在js代码中加入:

jQuery.extend(jQuery.validator.messages, {
        required: "必选字段",
  remote: "请修正该字段",
  email: "请输入正确格式的电子邮件",
  url: "请输入合法的网址",
  date: "请输入合法的日期",
  dateISO: "请输入合法的日期 (ISO).",
  number: "请输入合法的数字",
  digits: "只能输入整数",
  creditcard: "请输入合法的信用卡号",
  equalTo: "请再次输入相同的值",
  accept: "请输入拥有合法后缀名的字符串",
  maxlength: jQuery.validator.format("请输入一个 长度最多是 {0} 的字符串"),
  minlength: jQuery.validator.format("请输入一个 长度最少是 {0} 的字符串"),
  rangelength: jQuery.validator.format("请输入 一个长度介于 {0} 和 {1} 之间的字符串"),
  range: jQuery.validator.format("请输入一个介于 {0} 和 {1} 之间的值"),
  max: jQuery.validator.format("请输入一个最大为{0} 的值"),
  min: jQuery.validator.format("请输入一个最小为{0} 的值")
});

推荐做法,将此文件放入messages_cn.js中,在页面中引入
<script src="../js/messages_cn.js" type="text/javascript"></script>

四、使用方式

1.将校验规则写到控件中


<script src="../js/jquery.js" type="text/javascript"></script>
<script src="../js/jquery.validate.js" type="text/javascript"></script>
<script src="./js/jquery.metadata.js" type="text/javascript"></script>

$().ready(function() {
$("#signupForm").validate();
});


<form id="signupForm" method="get" action="">
    <p>
        <label for="firstname">Firstname</label>
        <input id="firstname" name="firstname" class="required" />
    </p>
<p>
  <label for="email">E-Mail</label>
  <input id="email" name="email" class="required email" />
</p>
<p>
  <label for="password">Password</label>
  <input id="password" name="password" type="password" class="{required:true,minlength:5}" />
</p>
<p>
  <label for="confirm_password">确认密码</label>
  <input id="confirm_password" name="confirm_password" type="password" class="{required:true,minlength:5,equalTo:'#password'}" />
</p>
    <p>
        <input class="submit" type="submit" value="Submit"/>
    </p>
</form>

使用class="{}"的方式,必须引入包:jquery.metadata.js

可以使用如下的方法,修改提示内容:
class="{required:true,minlength:5,messages:{required:'请输入内容'}}"

在使用equalTo关键字时,后面的内容必须加上引号,如下代码:
class="{required:true,minlength:5,equalTo:'#password'}"

2.将校验规则写到js代码中


$().ready(function() {
$("#signupForm").validate({
        rules: {
   firstname: "required",
   email: {
    required: true,
    email: true
   },
   password: {
    required: true,
    minlength: 5
   },
   confirm_password: {
    required: true,
    minlength: 5,
    equalTo: "#password"
   }
  },
        messages: {
   firstname: "请输入姓名",
   email: {
    required: "请输入Email地址",
    email: "请输入正确的email地址"
   },
   password: {
    required: "请输入密码",
    minlength: jQuery.format("密码不能小于{0}个字 符")
   },
   confirm_password: {
    required: "请输入确认密码",
    minlength: "确认密码不能小于5个字符",
    equalTo: "两次输入密码不一致不一致"
   }
  }
    });
});

//messages处,如果某个控件没有message,将调用默认的信息


<form id="signupForm" method="get" action="">
    <p>
        <label for="firstname">Firstname</label>
        <input id="firstname" name="firstname" />
    </p>
<p>
  <label for="email">E-Mail</label>
  <input id="email" name="email" />
</p>
<p>
  <label for="password">Password</label>
  <input id="password" name="password" type="password" />
</p>
<p>
  <label for="confirm_password">确认密码</label>
  <input id="confirm_password" name="confirm_password" type="password" />
</p>
    <p>
        <input class="submit" type="submit" value="Submit"/>
    </p>
</form>

required:true 必须有值
required:"#aa:checked"表达式的值为真,则需要验证
required:function(){}返回为真,表时需要验证
后边两种常用于,表单中需要同时填或不填的元素
五、常用方法及注意问题
1.用其他方式替代默认的SUBMIT

$().ready(function() {
$("#signupForm").validate({
        submitHandler:function(form){
            alert("submitted");  
            form.submit();
        }   
    });
});

可以设置validate的默认值,写法如下:
$.validator.setDefaults({
submitHandler: function(form) { alert("submitted!");form.submit(); }
});

如果想提交表单, 需要使用form.submit()而不要使用$(form).submit()
2.debug,只验证不提交表单

如果这个参数为true,那么表单不会提交,只进行检查,调试时十分方便

$().ready(function() {
$("#signupForm").validate({
        debug:true
    });
});
如果一个页面中有多个表单都想设置成为debug,用
$.validator.setDefaults({
   debug: true
})
3.ignore:忽略某些元素不验证
ignore: ".ignore"
4.更改错误信息显示的位置

errorPlacement:Callback

Default: 把错误信息放在验证的元素后面
指明错误放置的位置,默认情况是:error.appendTo(element.parent());即把错误信息放在验证的元素后面
errorPlacement: function(error, element) { 
    error.appendTo(element.parent()); 
}

//示例:
<tr>
    <td class="label"><label id="lfirstname" for="firstname">First Name</label></td>
    <td class="field"><input id="firstname" name="firstname" type="text" value="" maxlength="100" /></td>
    <td class="status"></td>
</tr>
<tr>
    <td style="padding-right: 5px;">
        <input id="dateformat_eu" name="dateformat" type="radio" value="0" />
        <label id="ldateformat_eu" for="dateformat_eu">14/02/07</label>
    </td>
    <td style="padding-left: 5px;">
        <input id="dateformat_am" name="dateformat" type="radio" value="1"  />
        <label id="ldateformat_am" for="dateformat_am">02/14/07</label>
    </td>
    <td></td>
</tr>
<tr>
    <td class="label">&nbsp;</td>
    <td class="field" colspan="2">
        <div id="termswrap">
            <input id="terms" type="checkbox" name="terms" />
            <label id="lterms" for="terms">I have read and accept the Terms of Use.</label>
        </div>
    </td>
</tr>

errorPlacement: function(error, element) {
    if ( element.is(":radio") )
        error.appendTo( element.parent().next().next() );
    else if ( element.is(":checkbox") )
        error.appendTo ( element.next() );
    else
        error.appendTo( element.parent().next() );
}

代码的作用是:一般情况下把错误信息显示在<td class="status"></td>中,如果是radio显示在<td></td>中,如果是 checkbox显示在内容的后面

errorClass:String  Default: "error"
指定错误提示的css类名,可以自定义错误提示的样式

errorElement:String  Default: "label"
用什么标签标记错误,默认的是label你可以改成em

errorContainer:Selector
显示或者隐藏验证信息,可以自动实现有错误信息出现时把容器属性变为显示,无错误时隐藏,用处不大
errorContainer: "#messageBox1, #messageBox2"

errorLabelContainer:Selector
把错误信息统一放在一个容器里面。

wrapper:String
用什么标签再把上边的errorELement包起来

一般这三个属性同时使用,实现在一个容器内显示所有错误提示的功能,并且没有信息时自动隐藏

errorContainer: "div.error",
errorLabelContainer: $("#signupForm div.error"),
wrapper: "li"
5更改错误信息显示的样式

设置错误提示的样式,可以增加图标显示,在该系统中已经建立了一个validation.css专门用于维护校验文件的样式

input.error { border: 1px solid red; }
label.error {
  background:url("./demo/images/unchecked.gif") no-repeat 0px 0px;

  padding-left: 16px;

  padding-bottom: 2px;

  font-weight: bold;

  color: #EA5200;
}
label.checked {
  background:url("./demo/images/checked.gif") no-repeat 0px 0px;
}
6每个字段验证通过执行函数

success:String,Callback
要验证的元素通过验证后的动作,如果跟一个字符串,会当做一个css类,也可跟一个函数
success: function(label) {
    // set &nbsp; as text for IE
    label.html("&nbsp;").addClass("checked");
    //label.addClass("valid").text("Ok!")
}
添加"valid" 到验证元素, 在CSS中定义的样式<style>label.valid {}</style>
success: "valid"


7验证的触发方式修改

下面的虽然是boolean型的,但建议除非要改为false,否则别乱添加。

onsubmit:Boolean  Default: true
提交时验证. 设置唯false就用其他方法去验证
onfocusout:Boolean  Default: true
失去焦点是验证(不包括checkboxes/radio buttons)
onkeyup:Boolean  Default: true
在keyup时验证.
onclick:Boolean  Default: true
在checkboxes 和 radio 点击时验证
focusInvalid:Boolean  Default: true
提交表单后,未通过验证的表单(第一个或提交之前获得焦点的未通过验证的表单)会获得焦点
focusCleanup:Boolean  Default: false
如果是true那么当未通过验证的元素获得焦点时,移除错误提示。避免和 focusInvalid 一起用

// 重置表单
$().ready(function() {
var validator = $("#signupForm").validate({
        submitHandler:function(form){
            alert("submitted");  
            form.submit();
        }   
    });
    $("#reset").click(function() {
        validator.resetForm();
    });

});
8异步验证

remote:URL
使用ajax方式进行验证,默认会提交当前验证的值到远程地址,如果需要提交其他的值,可以使用data选项

remote: "check-email.php"

remote: {
    url: "check-email.php",     //后台处理程序
    type: "post",               //数据发送方式
    dataType: "json",           //接受数据格式  
    data: {                     //要传递的数据
        username: function() {
            return $("#username").val();
        }
    }
}


远程地址只能输出 "true" 或 "false",不能有其它输出


9添加自定义校验

addMethod:name, method, message
自定义验证方法


// 中文字两个字节
jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {
    var length = value.length;
    for(var i = 0; i < value.length; i++){
        if(value.charCodeAt(i) > 127){
            length++;
        }
    }
  return this.optional(element) || ( length >= param[0] && length <= param[1] );  
}, $.validator.format("请确保输入的值在{0}-{1}个字节之间(一个中文字算2个字节)"));


// 邮政编码验证  
jQuery.validator.addMethod("isZipCode", function(value, element) {  
    var tel = /^[0-9]{6}$/;
    return this.optional(element) || (tel.test(value));
}, "请正确填写您的邮政编码");
10radio和checkbox、select的验证

1.radio的required表示必须选中一个
<input  type="radio" id="gender_male" value="m" name="gender" class="{required:true}" />
<input  type="radio" id="gender_female" value="f" name="gender"/>

2.checkbox的required表示必须选中
<input type="checkbox" class="checkbox" id="agree" name="agree" class="{required:true}" />

checkbox的minlength表示必须选中的最小个数,maxlength表示最大的选中个数,rangelength:[2,3]表示选中个数区间


<input type="checkbox" class="checkbox" id="spam_email" value="email" name="spam[]" class="{required:true, minlength:2}" />
<input type="checkbox" class="checkbox" id="spam_phone" value="phone" name="spam[]" />
<input type="checkbox" class="checkbox" id="spam_mail" value="mail" name="spam[]" />

    3.select的required表示选中的value不能为空
<select id="jungle" name="jungle" title="Please select something!" class="{required:true}">
    <option value=""></option>
    <option value="1">Buga</option>
    <option value="2">Baga</option>
    <option value="3">Oi</option>
</select>

select的minlength表示选中的最小个数(可多选的select),maxlength表示最大的选中个数,rangelength:[2,3]表示选中个数区间
<select id="fruit" name="fruit" title="Please select at least two fruits" class="{required:true, minlength:2}" multiple="multiple">
    <option value="b">Banana</option>
    <option value="a">Apple</option>
    <option value="p">Peach</option>
    <option value="t">Turtle</option>
</select>

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zgmzyr/archive/2011/04/18/6331912.aspx

posted @ 2011-06-17 14:09 快乐之道 阅读(57) 评论(0) 编辑
posted @ 2011-06-06 23:24 快乐之道 阅读(42) 评论(0) 编辑
摘要: 号称网络硬件三剑客的集线器(Hub)、交换机(Switch)与路由器(Router)一直都是网络界的活跃分子,但让很多初入网络之门的菜鸟恼火的是,它们三者不仅外观相似,而且经常呆在一起,要想分清谁是谁,感觉有点难!就让我们一起来看看它们之间有什么区别和联系吧! 三剑客的工作原理 一、集线器 1.什么是集线器 在认识集线器之前,必须先了解一下中继器。在我们接触到的网络中,最简单的就是两台电脑...阅读全文
posted @ 2011-02-11 12:22 快乐之道 阅读(262) 评论(2) 编辑
摘要: 1lucene简介1.1什么是luceneLucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com或者googleDesktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。1.2lucene能做什么要回答这个问题,先要了解lucene的本质。实际上lucene的功能很单一,说到底,就是你给它若干个字符串,然后它为你提供一个全文搜索服务,告诉你你要搜索的关键词出现在哪里。知道了这个本质,你就可以发挥想象做任何符合这个条件的事情了。你可以把站内新闻都索引了,做个资料库;你可以把一个数据库表的若干个字段索引起来,那就不用再担心因为&#8220;%li阅读全文
posted @ 2011-02-10 16:52 快乐之道 阅读(61) 评论(0) 编辑
摘要: 从一组服务器的角度来看,一般来说,我们的服务器组(Cluster)内都会有登陆验证服务器(Login Server)、持久性数据服务器(DB及DB Proxy)、连接代理服务器(Gate Server、FEP Server、Client Proxy等)以及Auto Patch Server、还有用于集中管理及控制组的服务器等等,由于这些服务器基本上什么样的架构设计都会用到,所以——现在不考虑以上这些服务器,只考虑具体处理游戏逻辑、游戏规则的各个服务器。以此为前提来分析一下 Services-based Architecture 和 Cells-based Architecture 的优缺点。对阅读全文
posted @ 2011-02-07 22:54 快乐之道 阅读(194) 评论(0) 编辑
摘要: 过去一年中,花了很多时间在考虑服务器架构设计方面的问题。看了大量文章、也研究了不少开源项目,眼界倒是开阔了不少,不过回过头来看,对网游架构设计方面的帮助却是不多。老外还是玩儿console game的多,MMO Games方面涉及的还是不如国内广泛。看看 Massively Multiplayer Games Development 1 & 2 这两本书吧,质量说实话很一般,帮助自然也很有限。当然这也是好事,对国内的研发公司/团队来说,在网游服务器技术方面当然就存在超越老外的可能性,而且在这方面技术超越的机会更大,当然前提是要有积累、要舍得投入,研发人员更要耐得住寂寞、经得起诱惑,在平均每天收阅读全文
posted @ 2011-02-07 22:38 快乐之道 阅读(326) 评论(0) 编辑
摘要: DataTable 修改列名 删除列 调整列顺序 DataTable myDt =dt;//删除列myDt.Columns.Remove("Columns1");//调整列顺序 ,列排序从0开始 myDt.Columns["Columns1"].SetOrdinal(1);//修改列标题名称 dt.Columns["Columns1"].ColumnName = "Columns1new";阅读全文
posted @ 2011-02-05 23:48 快乐之道 阅读(286) 评论(0) 编辑