﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-&lt;h2&gt;&lt;font color="green"&gt;生命科学领域的专业信息解决方案！&lt;/font&gt;&lt;/h2&gt;-随笔分类-Ajax</title><link>http://www.blogjava.net/rain1102/category/37626.html</link><description>&lt;br/&gt;&lt;font color="green" style="font-family: 华文行楷;font-size:16px;"&gt;化学结构搜索，化学信息学，生物信息学，实验室信息学等
。&lt;/font&gt;&lt;br/&gt;&lt;font color="#3C1435"&gt;以高科技的生物、化学信息技术实现生命科学领域中专业数据的计算和管理、提高研发能力、增强在科研和成本效率方面的国际竞争力，为生物、化学、医药和学术机构提供一流的解决方案和技术咨询。&lt;/font&gt;&lt;br/&gt;
&lt;br/&gt;&lt;font color="green" style="font-family: 华文行楷;font-size:16px;"&gt;子曰：危邦不入，乱邦不居。天下有道则见，无道则隐。&lt;/font&gt;&lt;font color="#3C1435"&gt;&lt;/font&gt;&lt;br/&gt;
</description><language>zh-cn</language><lastBuildDate>Thu, 31 Mar 2011 13:19:08 GMT</lastBuildDate><pubDate>Thu, 31 Mar 2011 13:19:08 GMT</pubDate><ttl>60</ttl><item><title>高性能网站建设-示例</title><link>http://www.blogjava.net/rain1102/archive/2011/03/31/347381.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 31 Mar 2011 05:29:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2011/03/31/347381.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/347381.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2011/03/31/347381.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/347381.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/347381.html</trackback:ping><description><![CDATA[<a href="http://stevesouders.com/hpws/rules.php" target="_blank">http://stevesouders.com/hpws/rules.php</a><img src ="http://www.blogjava.net/rain1102/aggbug/347381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2011-03-31 13:29 <a href="http://www.blogjava.net/rain1102/archive/2011/03/31/347381.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jQuery获取重名input的数组值</title><link>http://www.blogjava.net/rain1102/archive/2011/03/29/347165.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 29 Mar 2011 01:22:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2011/03/29/347165.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/347165.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2011/03/29/347165.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/347165.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/347165.html</trackback:ping><description><![CDATA[jQuery获取重名input的数组值：<br />
<span style="color: #008000">var usernames = new Array();&nbsp;&nbsp;&nbsp;<br />
&nbsp;var i = 0;&nbsp;&nbsp; <br />
$("input[name='username']").each(&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function(){&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; usernames[i] = $(this).val();&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i++;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;<br />
&nbsp;) </span><img src ="http://www.blogjava.net/rain1102/aggbug/347165.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2011-03-29 09:22 <a href="http://www.blogjava.net/rain1102/archive/2011/03/29/347165.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jQuery的Validation插件[转载]</title><link>http://www.blogjava.net/rain1102/archive/2010/01/25/310783.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 25 Jan 2010 13:04:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2010/01/25/310783.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/310783.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2010/01/25/310783.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/310783.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/310783.html</trackback:ping><description><![CDATA[原文地址: http://blog.csdn.net/ziwen00/archive/2009/09/14/4551346.aspx<br />
<p>jQuery的Validation插件</p>
<p>最新最全的jQuery插件可以从jQuery的官方网站上面获得,jQuery下载验证插件的地址是http://plugins.jquery.com/在打开页面的左上角&#8217;Search&#8217;框中输入validation就可以找到我们想要的验证插件了,在http://plugins.jquery.com/project/validate下,我们找到了目前最新的版本(2009年6月17日)官方推出的1.5.5版的validate.js.</p>
<p>Validation插件式历史悠久的jQuery插件之一,经过了全球各种项目的验证,得到了很多WEB开发者的好评,作为一个表单验证的解决方案,Validation有很多的优点,比如:内置的验证规则,可以自定义验证规则,简单而且强大的验证信息提示,实时进行验证的功能.都可以令前台开发变得非常的简单.Validation具有内置的必填,数字,Email,URL等多种验证规则.实时验证方面,通过blur和keyup时间来触发验证规则,可以达到实时验证的目的.</p>
<p>下面是一个简单的例子,HTML和jQuery代码如下:</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;</p>
<p>&lt;html&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;head&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;jQuery之验证插件&lt;/title&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript' src='jquery-1.3.2.js'&gt;&lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 引入了jQuery库之后,继续引入validation插件 --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript' src='jquery.validate.js'&gt;&lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;style type='text/css'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *{font-family:Verdana;font-size:96%;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label.error{float:none;color:red;padding-left:.5em;vertical-align:top;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p{clear:both;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .submit{margin-left:12em;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; em{font-weight:bold;vertical-align:top;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/style&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(document).ready(function(){</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //确定哪一个表单需要进行验证</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('#commentForm').validate();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;/head&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;body&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;form class='cmxform' id='commentForm' method='get' action='#'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fieldset&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;legend&gt;一个简单的带有提示的评论例子&lt;/legend&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='cusername'&gt;姓名&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 针对不同的字段,进行验证规则编码,设置字段相应的属性 --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- class='required'来设置必填验证,minlength='2'设置最小长度验证 --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id='cusername' name='username' size='25' class='required' minlength='2'/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='cemail'&gt;电子邮件&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- class='required,email'为必填内容和email规则验证 --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id='cemail' name='email' size='25' class='required email'/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='curl'&gt;网址&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- class='url'设置url验证 --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id='curl' name='url' size='25' class='url' value=''/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='ccomment'&gt;你的评论&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 对评论textarea进行必填验证 --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;textarea id='ccomment' name='comment' cols='25' class='required'&gt;&lt;/textarea&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input class='submit' type='submit' value='提交'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fieldset&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/form&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;/body&gt;</p>
<p>&lt;/html&gt;</p>
<p>上面的代码实现了如下的验证:</p>
<p>1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对&#8221;姓名&#8221;的必填和长度至少为2为的验证</p>
<p>2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对&#8221;电子邮件&#8221;的验证和是否为E-mail格式的验证</p>
<p>3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对&#8221;网址&#8221;是否为url的验证</p>
<p>4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对&#8221;你的评论&#8221;的必填验证</p>
<p>5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 提供了在用户输入的时候对长度的实时验证</p>
<p>只需要完成如下几步,就可以将一个普通的表单变成一个可以进行验证的表单:</p>
<p>1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 引入jQuery库和Validation插件</p>
<p><br />
view plaincopy to clipboardprint?<br />
&lt;mce:script type='text/javascript' src="jquery-1.3.2.js" mce_src="jquery-1.3.2.js"&gt;&lt;/mce:script&gt;&nbsp; <br />
&nbsp; <br />
&lt;!-- 引入了jQuery库之后,继续引入validation插件 --&gt;&nbsp; <br />
&nbsp; <br />
&lt;mce:script type='text/javascript' src="jquery.validate.js" mce_src="jquery.validate.js"&gt;&lt;/mce:script&gt;&nbsp; <br />
&lt;mce:script type='text/javascript' src="jquery-1.3.2.js" mce_src="jquery-1.3.2.js"&gt;&lt;/mce:script&gt;</p>
<p>&lt;!-- 引入了jQuery库之后,继续引入validation插件 --&gt;</p>
<p>&lt;mce:script type='text/javascript' src="jquery.validate.js" mce_src="jquery.validate.js"&gt;&lt;/mce:script&gt;<br />
&nbsp;</p>
<p>2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 确定是哪一个表单需要被验</p>
<p>&nbsp;</p>
<p>view plaincopy to clipboardprint?<br />
$(document).ready(function(){&nbsp;&nbsp; <br />
&nbsp; <br />
//确定哪一个表单需要进行验证&nbsp;&nbsp; <br />
&nbsp; <br />
$('#commentForm').validate();&nbsp;&nbsp; <br />
&nbsp; <br />
});&nbsp; <br />
$(document).ready(function(){</p>
<p>//确定哪一个表单需要进行验证</p>
<p>$('#commentForm').validate();</p>
<p>});<br />
&nbsp;</p>
<p>3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 针对不同的字段,进行验证规则的编码,设置字段相应的属性</p>
<p><br />
view plaincopy to clipboardprint?<br />
&lt;input id='cusername' name='username' size='25' class='required' minlength='2'/&gt;&nbsp; <br />
&nbsp; <br />
&lt;input id='cemail' name='email' size='25' class='required email'/&gt;&nbsp; <br />
&nbsp; <br />
&lt;textarea id='ccomment' name='comment' cols='25' class='required'/&gt;&nbsp; <br />
&lt;input id='cusername' name='username' size='25' class='required' minlength='2'/&gt;</p>
<p>&lt;input id='cemail' name='email' size='25' class='required email'/&gt;</p>
<p>&lt;textarea id='ccomment' name='comment' cols='25' class='required'/&gt;<br />
&nbsp;</p>
<p>将所有的验证规则写到class属性里:</p>
<p>在实际的开发中,有的时候将验证规则写到class=&#8217;required email&#8217;有的时候写到minlength=&#8217;2&#8217;里面,这样非常的不方便,有没有一种方式可以将所有的验证规则放到一个地方去呢?这个答案是肯定的.jQuery充分考虑到了这一点,我们可以通过另外一个JavaScript库来将所有的验证规则放到一个class文件当中去.这样就大大方面了对验证规则的管理.</p>
<p>1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在下载的\jquery-validate\lib文件夹下面找到jquery.metadata.js.放到项目当中,然后引入该jQuery插件.jquery.metadate.js是一个支持固定格式解析的jQuery插件,Validation插件将其很好的融合到验证规则编码当中.</p>
<p>view plaincopy to clipboardprint?<br />
&lt;mce:script type="text/javascript" src="jquery.metadata.js" mce_src="jquery.metadata.js"&gt;&lt;/mce:script&gt;&nbsp; <br />
&lt;mce:script type="text/javascript" src="jquery.metadata.js" mce_src="jquery.metadata.js"&gt;&lt;/mce:script&gt; </p>
<p>2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 改变调用的验证方法</p>
<p>&nbsp;</p>
<p>view plaincopy to clipboardprint?<br />
&lt;mce:script type='text/javascript'&gt;&lt;!--&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; $(document).ready(function(){&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //确定那个表单进行验证(改变调用的验证方法)&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('#commentForm').validate({meta: "validate"});&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; });&nbsp;&nbsp; <br />
// --&gt;&lt;/mce:script&gt;&nbsp; <br />
&lt;mce:script type='text/javascript'&gt;&lt;!--<br />
&nbsp;&nbsp;&nbsp; $(document).ready(function(){</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //确定那个表单进行验证(改变调用的验证方法)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('#commentForm').validate({meta: "validate"});</p>
<p>&nbsp;&nbsp;&nbsp; });<br />
// --&gt;&lt;/mce:script&gt;<br />
&nbsp;</p>
<p>3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将所有的验证规则都通过类似{validate:{required:true,email:true}}的形式,写到class属性当中,详细的HTML代码如下:</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;</p>
<p>&lt;html&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;head&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;jQuery之验证插件&lt;/title&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript' src='jquery-1.3.2.js'&gt;&lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 引入了jQuery库之后,继续引入validation插件 --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript' src='jquery.validate.js'&gt;&lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 引入一个新的jQuery插件 --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type="text/javascript" src='jquery.metadata.js'&gt;&lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;style type='text/css'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *{font-family:Verdana;font-size:96%;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label.error{float:none;color:red;padding-left:.5em;vertical-align:top;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p{clear:both;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .submit{margin-left:12em;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; em{font-weight:bold;vertical-align:top;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/style&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(document).ready(function(){</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //确定那个表单进行验证(改变调用的验证方法)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('#commentForm').validate({meta: "validate"});</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;/head&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;body&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;form class='cmxform' id='commentForm' method='get' action='#'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fieldset&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;legend&gt;一个简单的带有提示的评论例子&lt;/legend&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='cusername'&gt;姓名&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id='cusername' name='username' size='25' class='{validate:{required:true,minlength:2}}'/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='cemail'&gt;电子邮件&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id='cemail' name='email' size='25' class='{validate:{required:true,email:true}}'/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='curl'&gt;网址&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id='curl' name='url' size='25' class='{validate:{url:true}}' value=''/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='ccomment'&gt;你的评论&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;textarea id='ccomment' name='comment' cols='25' class='{validate:{required:true}}'&gt;&lt;/textarea&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input class='submit' type='submit' value='提交'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fieldset&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/form&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;/body&gt;</p>
<p>&lt;/html&gt;</p>
<p>将验证行为和HTML结构完全脱离的一种验证写法:</p>
<p>上面的两种写法,一种是通过给标签添加属性来完成验证,一种是通过jquery.metadate.js的帮助将所有的验证规则添加到class属性中,都没有符合jQuery提倡的&#8221;行为和操作分离&#8221;的一个原则,下面的方法就补足了这个缺陷,可以让HTML结构和验证规则很好的分离出来</p>
<p>HTML代码如下:</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;</p>
<p>&lt;html&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;head&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;jQuery之验证插件&lt;/title&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript' src='jquery-1.3.2.js'&gt;&lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 引入了jQuery库之后,继续引入validation插件 --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript' src='jquery.validate.js'&gt;&lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;style type='text/css'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *{font-family:Verdana;font-size:96%;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label.error{float:none;color:red;padding-left:.5em;vertical-align:top;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p{clear:both;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .submit{margin-left:12em;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; em{font-weight:bold;vertical-align:top;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/style&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(document).ready(function(){</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('#commentForm').validate({</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rules:{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username:{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required:true,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minlength:3</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; email:{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required:true,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; email:true</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url:"url",</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comment:"required"</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; })</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;/head&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;body&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;form class='cmxform' id='commentForm' method='get' action='#'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fieldset&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;legend&gt;一个简单的带有提示的评论例子&lt;/legend&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='cusername'&gt;姓名&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id='cusername' name='username' size='25' /&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='cemail'&gt;电子邮件&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id='cemail' name='email' size='25' /&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='curl'&gt;网址&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id='curl' name='url' size='25' value=''/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='ccomment'&gt;你的评论&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;textarea id='ccomment' name='comment' cols='25'&gt;&lt;/textarea&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input class='submit' type='submit' value='提交'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fieldset&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/form&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;/body&gt;</p>
<p>&lt;/html&gt;</p>
<p>在这种&#8221;HTML和验证完全分离&#8221;的验证规则写法的步骤如下:</p>
<p>1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在$(&#8220;#ccommentForm&#8221;).validate()方法中增加rules属性</p>
<p>2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 通过每个字段的name属性来匹配验证规则</p>
<p>3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 定义验证规则,比如required:true,email:true,minlength:2等等.</p>
<p>将默认的英文验证信息变成中文:</p>
<p>validation插件默认的验证信息是英文的,要想将validation验证插件给出的验证信息变成中文就可以到jquery-validate\localization文件夹下面找到messages_cn.js文件,这个就是中文的验证信息库,我们只需要在代码中将这个文件导入就可以实现中文验证信息的输出了.在jquery-validate\localization这个文件夹下面,还有很多种语言,我们可以选择适当的语言引入到我们的项目当中,实现提示信息的本地化.</p>
<p>view plaincopy to clipboardprint?<br />
&lt;!-- 引入中文验证信息库 --&gt;&nbsp; <br />
&nbsp; <br />
&lt;mce:script type='text/javascript' src="messages_cn.js" mce_src="messages_cn.js"&gt;&lt;/mce:script&gt;&nbsp; <br />
&lt;!-- 引入中文验证信息库 --&gt;</p>
<p>&lt;mce:script type='text/javascript' src="messages_cn.js" mce_src="messages_cn.js"&gt;&lt;/mce:script&gt;<br />
&nbsp;</p>
<p>&nbsp;</p>
<p>改变千篇一律的验证信息:</p>
<p>validaion验证插件可以非常方便的进行自定义验证规则,这样可以用来代替千篇一律的验证信息,具体修改好的HTML代码如下:</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;</p>
<p>&lt;html&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;head&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;jQuery之验证插件&lt;/title&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript' src='jquery-1.3.2.js'&gt;&lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 引入了jQuery库之后,继续引入validation插件 --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript' src='jquery.validate.js'&gt;&lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 引入中文验证信息库 --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript' src='messages_cn.js'&gt;&lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 要将所有的验证规则放到css标签当中去,就要引入metadate.js --&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript' src='jquery.metadata.js'&gt;&lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;style type='text/css'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *{font-family:Verdana;font-size:96%;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label.error{float:none;color:red;padding-left:.5em;vertical-align:top;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p{clear:both;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .submit{margin-left:12em;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; em{font-weight:bold;vertical-align:top;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/style&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type='text/javascript'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(document).ready(function(){</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('#commentForm').validate({meta:"validate"});</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;/head&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;body&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;form class='cmxform' id='commentForm' method='get' action='#'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fieldset&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;legend&gt;一个简单的带有提示的评论例子&lt;/legend&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='cusername'&gt;姓名&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id='cusername' name='username' </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="{validate:{required:true,minlength:2,messages:{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required:'姓名是必须要输入的',</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minlength:'请输入不少于两个字符的姓名'}}}"</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size='25' /&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='cemail'&gt;电子邮件&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id='cemail' name='email' </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="{validate:{required:true,email:true,messages:{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required:'邮箱是必须要输入的',</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; email:'请输入符合格式的Email地址'}}}"</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size='25' /&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='curl'&gt;网址&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id='curl' name='url' </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="{validate:{url:true,messages:{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url:'您的URL地址的输入不符合要求'}}}" </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size='25' value=''/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label for='ccomment'&gt;你的评论&lt;/label&gt;&lt;em&gt;*&lt;/em&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;textarea id='ccomment' name='comment' </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="{validate:{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required:true,messages:{required:'多少也写点评论哦'}}}"</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cols='25'&gt;&lt;/textarea&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input class='submit' type='submit' value='提交'&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fieldset&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/form&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;/body&gt;</p>
<p>&lt;/html&gt;</p>
<p>具体来说,上面的代码就是在class的属性中增加了类似messages:{required:&#8217;&#8217;,email:&#8217;&#8217;}形式的一块代码,这样就可以显示我们自定义的验证信息了.</p>
<p>自己来定义表单验证的业务规则:</p>
<p>通常在开发项目中,验证规则与实际的业务逻辑是息息相关的,一个好的验证插件必须要支持自定义验证机制,当然jQuery就提供了多种机制来满足用户的业务需要.</p>
<p>我们添加以下代码到上面的HTML代码中,方便进行验证码的功能实现.</p>
<p>&nbsp;</p>
<p>&nbsp;view plaincopy to clipboardprint?<br />
&lt;p&gt;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;label for='cvalcode'&gt;验证码&lt;/label&gt;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;input id='cvalcode' name='valcode' size='25' value=''/&gt;=7+9&nbsp;&nbsp; <br />
&nbsp; <br />
&lt;/p&gt;&nbsp; <br />
&lt;p&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;label for='cvalcode'&gt;验证码&lt;/label&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;input id='cvalcode' name='valcode' size='25' value=''/&gt;=7+9</p>
<p>&lt;/p&gt;<br />
&nbsp;</p>
<p>为了实现&#8221;验证码&#8221;的功能,我们需要以下几个步骤:</p>
<p>1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 自定义一个验证规则</p>
<p>view plaincopy to clipboardprint?<br />
$.validator.addMethod(&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; "formula",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //验证方法的名称&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; function(value,element,param){&nbsp;&nbsp; //验证规则&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return value==eval(param);&nbsp;&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '请输入正确的结果'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //提示验证信息&nbsp;&nbsp; <br />
&nbsp; <br />
);&nbsp;&nbsp; <br />
$.validator.addMethod(</p>
<p>&nbsp;&nbsp;&nbsp; "formula",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //验证方法的名称</p>
<p>&nbsp;&nbsp;&nbsp; function(value,element,param){&nbsp;&nbsp; //验证规则</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return value==eval(param); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '请输入正确的结果'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //提示验证信息</p>
<p>); <br />
&nbsp;</p>
<p><br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在代码中引用以上验证规则</p>
<p>view plaincopy to clipboardprint?<br />
$('#commentForm').validate({&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; rules:{&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username:{&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required:true,&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minlength:3&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; email:{&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required:true,&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; email:true&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url:"url",&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comment:"required",&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; valcode:{formula:"7+9"}&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
&nbsp; <br />
})&nbsp; </p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/ziwen00/archive/2009/09/14/4551346.aspx</p><img src ="http://www.blogjava.net/rain1102/aggbug/310783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2010-01-25 21:04 <a href="http://www.blogjava.net/rain1102/archive/2010/01/25/310783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Extjs－displayfield格式化日期</title><link>http://www.blogjava.net/rain1102/archive/2009/11/30/304320.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 30 Nov 2009 14:25:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/11/30/304320.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/304320.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/11/30/304320.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/304320.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/304320.html</trackback:ping><description><![CDATA[Ext.override(Ext.form.DisplayField, {<br />
&nbsp;&nbsp;&nbsp; getValue : function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.value;<br />
&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp; setValue : function(v){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.value = v;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.setRawValue(this.formatValue(v));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this;<br />
&nbsp;&nbsp;&nbsp; },<br />
&nbsp;&nbsp;&nbsp; formatValue : function(v){<br />
&nbsp;&nbsp;&nbsp; &nbsp;if(this.dateFormat &amp;&amp; Ext.isDate(v)){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;return v.dateFormat(this.dateFormat);<br />
&nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp;&nbsp; &nbsp;if(this.numberFormat &amp;&amp; typeof v == 'number'){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;return Ext.util.Format.number(v, this.numberFormat);<br />
&nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp;&nbsp; &nbsp;return v;<br />
&nbsp;&nbsp;&nbsp; }<br />
});<br />
<br />
<br />
items:[{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fieldLabel:'申购日期',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xtype : 'displayfield',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name : 'orderDate',<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red">&nbsp;formatValue: function(value){return new Date(value).format("Y-m-d");}<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;}]<img src ="http://www.blogjava.net/rain1102/aggbug/304320.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-11-30 22:25 <a href="http://www.blogjava.net/rain1102/archive/2009/11/30/304320.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ExtJS的xtype列表</title><link>http://www.blogjava.net/rain1102/archive/2009/11/20/303005.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 20 Nov 2009 01:04:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/11/20/303005.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/303005.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/11/20/303005.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/303005.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/303005.html</trackback:ping><description><![CDATA[<div class="postText">原文地址：http://www.blogjava.net/sealyu/archive/2009/11/18/302849.html
<p><strong><u>xtype &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p><strong>基本组件：</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>box &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.BoxComponent &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;具有边框属性的组件</p>
<p>button &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.Button &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 按钮</p>
<p>colorpalette &nbsp;&nbsp;&nbsp;&nbsp; Ext.ColorPalette &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 调色板</p>
<p>component &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.Component &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 组件</p>
<p>container &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Container &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 容器</p>
<p>cycle &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.CycleButton</p>
<p>dataview &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.DataView &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据显示视图</p>
<p>datepicker &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.DatePicker &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日期选择面板</p>
<p>editor &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Editor &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;编辑器</p>
<p>editorgrid &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.grid.EditorGridPanel &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可编辑的表格</p>
<p>grid &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.grid.GridPanel &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表格</p>
<p>paging &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.PagingToolbar &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 工具栏中的间隔</p>
<p>panel &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Panel &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 面板</p>
<p>progress &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.ProgressBar &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;进度条</p>
<p>splitbutton &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.SplitButton &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可分裂的按钮</p>
<p>tabpanel &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.TabPanel &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 选项面板</p>
<p>treepanel &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.tree.TreePanel &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 树</p>
<p>viewport &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.ViewPort &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;视图</p>
<p>window &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Window &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 窗口</p>
<p><strong>工具栏组件：</strong></p>
<p>toolbar &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Toolbar &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;工具栏</p>
<p>tbbutton &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.Toolbar.Button &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 按钮</p>
<p>tbfill &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.Toolbar.Fill &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;文件</p>
<p>tbitem &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Toolbar.Item &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 工具条项目</p>
<p>tbseparator &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Toolbar.Separator &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;工具栏分隔符</p>
<p>tbspacer &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Toolbar.Spacer &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;工具栏空白</p>
<p>tbsplit &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.Toolbar.SplitButton &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;工具栏分隔按钮</p>
<p>tbtext &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.Toolbar.TextItem &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;工具栏文本项</p>
<p><strong>表单及字段组件：</strong></p>
<p>form &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.FormPanel Form&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;面板</p>
<p>checkbox &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ext.form.Checkbox checkbox &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 录入框</p>
<p>combo &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.ComboBox combo &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 选择项</p>
<p>datefield &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.DateField &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 日期选择项</p>
<p>field &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.Field &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表单字段</p>
<p>fieldset &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.FieldSet &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;表单字段组</p>
<p>hidden &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.Hidden &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表单隐藏域</p>
<p>htmleditor &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.HtmlEditor html &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 编辑器</p>
<p>numberfield &nbsp;&nbsp;&nbsp;&nbsp;Ext.form.NumberField &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数字编辑器</p>
<p>radio &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.Radio &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 单选按钮</p>
<p>textarea &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.TextArea &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 区域文本框</p>
<p>textfield &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.TextField &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表单文本框</p>
<p>timefield &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.TimeField &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 时间录入项</p>
<p>trigger &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.TriggerField &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 触发录入项</p>
</div><img src ="http://www.blogjava.net/rain1102/aggbug/303005.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-11-20 09:04 <a href="http://www.blogjava.net/rain1102/archive/2009/11/20/303005.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jquery 中对checkbox的一些操作</title><link>http://www.blogjava.net/rain1102/archive/2009/06/05/280157.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 05 Jun 2009 01:56:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/06/05/280157.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/280157.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/06/05/280157.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/280157.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/280157.html</trackback:ping><description><![CDATA[设置单个checkbox的值:<br />
<span style="color: #008000">$('#checkall').attr('checked', 'true');&nbsp; </span>选择<br />
<span style="color: #008000">$('#checkall').attr('checked', '');&nbsp;</span> 不选<br />
<br />
选择多个checkbox:<br />
<span style="color: #008000">$('#suppliersTable input[@type=checkbox]').trigger('click');<br />
</span><br />
选择所有选中的checkbox:<br />
<span style="color: #008000">$('#suppliersTable input[@type=checkbox][@checked="true"]');<br />
</span><br />
选择所有未选中的checkbox<br />
<span style="color: #008000">$('#suppliersTable input[@type=checkbox][@checked=""]');<br />
</span><br />
触发所有未选中的checkbox的onclick事件:<br />
<span style="color: #008000">$('#suppliersTable input[@type=checkbox][@checked=""]').trigger('click');<br />
</span><br />
计算所有选中的checkbox个数:<br />
<span style="color: #008000">$('#suppliersTable tbody input[@type=checkbox][@checked="true"]').length;</span><img src ="http://www.blogjava.net/rain1102/aggbug/280157.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-06-05 09:56 <a href="http://www.blogjava.net/rain1102/archive/2009/06/05/280157.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jmesa中加入checkbox列和导出功能</title><link>http://www.blogjava.net/rain1102/archive/2009/06/04/280040.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 04 Jun 2009 09:06:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/06/04/280040.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/280040.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/06/04/280040.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/280040.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/280040.html</trackback:ping><description><![CDATA[<p>加入checkbox的步骤如下:<br />
需要在htmlRow标签中加入 uniqueProperty属性值, 并且修改tableFacade标签为可编辑的<br />
<span style="color: #008000">&lt;jmesa:tableFacade <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id="suppliersTable" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; items="${suppliers}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxRows="10" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxRowsIncrements="10,20,30" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exportTypes="excel"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000">&nbsp;editable="true"<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var="supplier"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jmesa:htmlTable width="100%" style="text-align:left;"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jmesa:htmlRow <span style="color: #ff0000">uniqueProperty="id"</span>&gt;</span></p>
然后修改checkbox的渲染列中的渲染器<br />
&lt;jmesa:htmlColumn property="flag" title="&amp;nbsp;" filterable="false" sortable="false" <span style="color: #ff0000">worksheetEditor="org.jmesa.worksheet.editor.CheckboxWorksheetEditor"</span>/&gt;<br />
这样checkbox就可以使用了.<br />
下面实现导出功能, 首先如上代码, 需要设置&nbsp;exportTypes="excel", 这里设置导出excel格式文件.<br />
对应导出还需要增加一个onInvokeExportAction,<br />
function onInvokeExportAction(id) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var parameterString = createParameterStringForLimit(id);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.open(path+'/supplier/export.do?' + parameterString);<br />
}<br />
<br />
下面来看看后来代码如果处理被选择的行:<br />
@RequestMapping<br />
&nbsp;public void export(HttpServletRequest request, HttpServletResponse response) {<br />
&nbsp;&nbsp;<span style="color: #ff0000"><span style="color: #008000">WebContext webContext = new HttpServletRequestWebContext(request);<br />
&nbsp;&nbsp;WorksheetState state = new SessionWorksheetState("suppliersTable", webContext);<br />
&nbsp;&nbsp;Worksheet worksheet = state.retrieveWorksheet();<br />
&nbsp;&nbsp;Collection&lt;WorksheetRow&gt; rows = worksheet.getRows();</span></span><br />
&nbsp;&nbsp;List&lt;Long&gt; ids = new ArrayList&lt;Long&gt;();<br />
&nbsp;&nbsp;for (WorksheetRow row : rows) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ids .add(Long.parseLong(row.getUniqueProperty().getValue()));<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;List&lt;Supplier&gt; suppliers = new ArrayList&lt;Supplier&gt;();<br />
&nbsp;&nbsp;if (!ids.isEmpty()) {<br />
&nbsp;&nbsp;&nbsp;suppliers = cimssupplierService.getSuppliersByIds(ids);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;ExcelUtil.writeSuppliers(response, suppliers);<br />
&nbsp;}<br />
主要是绿色代码如果获取页面上的一些信息.<img src ="http://www.blogjava.net/rain1102/aggbug/280040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-06-04 17:06 <a href="http://www.blogjava.net/rain1102/archive/2009/06/04/280040.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajax请求时的缓存的问题[转载]</title><link>http://www.blogjava.net/rain1102/archive/2009/06/03/279756.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 03 Jun 2009 02:33:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/06/03/279756.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/279756.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/06/03/279756.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/279756.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/279756.html</trackback:ping><description><![CDATA[<p>ajax请求同一个url地址时，如果发现url地址没有变而缓存里有就会直接去取值，不会再去请求服务器。这种情况会在不同的机器不同的IE上各有不同，解决的方式是在ajax请求的地址里加上一个随机的参数例如(jQuery)：</p>
$.getJSON(path+"/library/structuresView.do?num=1&amp;structCount="+customColumnNum*rowNum+"&amp;datetime="+(new Date()).getTime(), "", function(json){alert(json)})
$.ajax({url: path+"/library/structuresPropertyPreview.do?fetch=all&amp;random="+Math.random(),
type: 'GET',
success: function(data){alert(data)} });

<p>只要ajax每次请求的地址不一样就可以的。</p>
原文地址:http://yaofeng911.javaeye.com/blog/379705<br /><img src ="http://www.blogjava.net/rain1102/aggbug/279756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-06-03 10:33 <a href="http://www.blogjava.net/rain1102/archive/2009/06/03/279756.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>防止jQuery Load使用缓存的方法[转载]</title><link>http://www.blogjava.net/rain1102/archive/2009/03/23/261505.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 23 Mar 2009 05:50:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/03/23/261505.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/261505.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/03/23/261505.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/261505.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/261505.html</trackback:ping><description><![CDATA[<p done4="6" done2="8" done0="8">缓存这东西，在一定程度上加快了页面的装载，但是也常常给我们带来麻烦。我在<a title="jQuery中Load方法" href="http://www.61dh.com/blog/2008/11/jquery-load.html" target="_blank">上篇文章</a>里简单介绍了jQuery中Load方法的使用。在实际运用中，我们可能会碰到浏览器缓存的问题。比如我就在IE7里碰到这个问题。</p>
<p>jQuery Load样本代码：</p>
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 578px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb">
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb">$(<span style="color: #0000ff">document</span>).ready(<span style="color: #0000ff">function</span>(){
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb">  $("<span style="color: #8b0000">#labels</span>").load("<span style="color: #8b0000">/blog/categories/labels.html</span>");
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb">  <span style="color: #008000">//在页面装载时，在ID为#labels的DOM元素里插入labels.html的内容。</span>
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb">});</pre>
</pre>
<p>当我更新了<code>labels.html</code>以后，在IE7里load方法仍旧在使用旧的<code>labels.html</code>，就算我按刷新键也不管用。好在jQuery提供一个防止ajax使用缓存的方法，把下面的语句加在<code>head</code>的javascript文件里，就可以解决问题。</p>
<span class="fullpost" done4="7" done2="9" done0="9">
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 578px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb">
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb">$.ajaxSetup ({
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb">    cache: <span style="color: #0000ff">false</span> <span style="color: #008000">//关闭AJAX相应的缓存</span>
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb">});</pre>
</pre>
<p>此外我再介绍几种方法解决缓存的方法。<strong>注意：</strong>我没有在<code>jQuery load</code>的问题上测试过，这些方法仅供参考！</p>
<p>1.更改文件名，比如把<code>labels.html</code>改成<code>lables_new.html</code>，但是这是没有办法的办法，一般没有人这么做。</p>
<p>2.在<code>labels.html</code>后加上特定时间，比如<code>lables.html?20081116</code>。在实际工作中，在我更新css/javascript文件后，我都是用这种办法来防止文件被缓存。</p>
<p>3.在<code>labels.html</code>文件的顶部加入以下声明：</p>
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 578px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb">
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;</span><span style="color: #800000">META</span> <span style="color: #ff0000">HTTP</span>-<span style="color: #ff0000">EQUIV</span>=<span style="color: #0000ff">"Pragma"</span> <span style="color: #ff0000">CONTENT</span>=<span style="color: #0000ff">"no-cache"</span><span style="color: #0000ff">&gt;</span>
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;</span><span style="color: #800000">META</span> <span style="color: #ff0000">HTTP</span>-<span style="color: #ff0000">EQUIV</span>=<span style="color: #0000ff">"Expires"</span> <span style="color: #ff0000">CONTENT</span>=<span style="color: #0000ff">"-1"</span><span style="color: #0000ff">&gt;</span></pre>
</pre>
<p>4.<code>load</code>函数不仅可以调用HTML，也可以调用script，比如<code>labels.php</code>，可以在php文件里使用<code>header</code>函数：</p>
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 578px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb" done4="7" done2="9" done0="9">
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;?</span>php
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb" done4="7" done2="9" done0="9"><a style="color: #ffa500" href="http://www.php.net/header">header</a>("<span style="color: #8b0000">Cache-Control: no-cache, must-revalidate</span>");
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">?&gt;</span></pre>
</pre>
</span><img src ="http://www.blogjava.net/rain1102/aggbug/261505.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-03-23 13:50 <a href="http://www.blogjava.net/rain1102/archive/2009/03/23/261505.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jmesa中处理Map的List对象</title><link>http://www.blogjava.net/rain1102/archive/2009/03/19/260847.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 19 Mar 2009 09:43:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/03/19/260847.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/260847.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/03/19/260847.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/260847.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/260847.html</trackback:ping><description><![CDATA[<p>目前需求, 客户上传excel文件, 有列名, 列名不固定, 想预览数据, 使用Jmesa做table, 有两种实现方法. 第一种使用动态类, 封装map对象. 第二种是一种巧妙的方法. 下面先介绍第一种方法:<br />
使用动态类:</p>
<p>package com.founder.cst.action;</p>
<p>import <a title="Java爱好者" href="http://www.blogjava.net/rain1102">Java</a>.util.ArrayList;<br />
import <a title="Java爱好者" href="http://www.blogjava.net/rain1102">Java</a>.util.List;</p>
<p>import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;</p>
<p>import org.apache.commons.beanutils.BasicDynaBean;<br />
import org.apache.commons.beanutils.BasicDynaClass;<br />
import org.apache.commons.beanutils.DynaBean;<br />
import org.apache.commons.beanutils.DynaClass;<br />
import org.apache.commons.beanutils.DynaProperty;<br />
import org.jmesa.core.filter.MatcherKey;<br />
import org.jmesa.facade.TableFacade;<br />
import org.jmesa.facade.TableFacadeFactory;<br />
import org.jmesa.view.html.component.HtmlTable;<br />
import org.springframework.stereotype.Controller;<br />
import org.springframework.ui.ModelMap;<br />
import org.springframework.web.bind.annotation.RequestMapping;</p>
<p>import com.founder.cst.common.StringFilterMatcher;</p>
<p>@Controller<br />
@RequestMapping<br />
public class DynaController {</p>
<p>&nbsp;@RequestMapping<br />
&nbsp;public String books(final HttpServletRequest request, HttpServletResponse response, ModelMap model){</p>
<p>&nbsp;&nbsp;DynaClass&nbsp; bookClass = createBasicDynaClass();<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;List&lt;DynaBean&gt; results = new ArrayList&lt;DynaBean&gt;();<br />
&nbsp;&nbsp;&nbsp;DynaBean book11 = bookClass.newInstance();<br />
&nbsp;&nbsp;&nbsp;book11.set("id", "1");<br />
&nbsp;&nbsp;&nbsp;book11.set("name", "Spring");<br />
&nbsp;&nbsp;&nbsp;book11.set("price", "18.29");<br />
&nbsp;&nbsp;&nbsp;results.add(book11);<br />
&nbsp;&nbsp;&nbsp;DynaBean book22 = bookClass.newInstance();<br />
&nbsp;&nbsp;&nbsp;book22.set("id", "2");<br />
&nbsp;&nbsp;&nbsp;book22.set("name", "Hibernate");<br />
&nbsp;&nbsp;&nbsp;book22.set("price", "12.29");<br />
&nbsp;&nbsp;&nbsp;results.add(book22);<br />
&nbsp;&nbsp;&nbsp;DynaBean book33 = bookClass.newInstance();<br />
&nbsp;&nbsp;&nbsp;book33.set("id", "3");<br />
&nbsp;&nbsp;&nbsp;book33.set("name", "Python");<br />
&nbsp;&nbsp;&nbsp;book33.set("price", "17.32");<br />
&nbsp;&nbsp;&nbsp;results.add(book33);<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;TableFacade tableFacade = TableFacadeFactory.createTableFacade("booksTable", request);<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;tableFacade.setColumnProperties("id", "name", "price");<br />
&nbsp;&nbsp;&nbsp;tableFacade.setMaxRows(10);<br />
&nbsp;&nbsp;&nbsp;tableFacade.setMaxRowsIncrements(10, 20, 30);<br />
&nbsp;&nbsp;&nbsp;tableFacade.setItems(results);<br />
&nbsp;&nbsp;&nbsp;HtmlTable table = (HtmlTable) tableFacade.getTable();<br />
&nbsp;&nbsp;&nbsp;table.getTableRenderer().setWidth("558px");<br />
&nbsp;&nbsp;&nbsp;table.getRow().setUniqueProperty("id");<br />
&nbsp;&nbsp;&nbsp;String html = tableFacade.render();<br />
&nbsp;&nbsp;&nbsp;model.addAttribute("html", html);<br />
&nbsp;&nbsp;} catch (IllegalAccessException e) {<br />
&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;} catch (InstantiationException e) {<br />
&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return "books";<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public DynaClass createBasicDynaClass() {<br />
&nbsp;&nbsp;DynaClass dynaClass = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //create basic field for dynaClass<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DynaProperty[] dynaProps = new DynaProperty[3];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dynaProps[0] = new DynaProperty("id");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dynaProps[1] = new DynaProperty("name", String.class);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dynaProps[2] = new DynaProperty("price", String.class);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //create map filed for dynaClass<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dynaClass = new BasicDynaClass("first", BasicDynaBean.class, dynaProps);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return dynaClass;<br />
&nbsp;&nbsp;&nbsp; }</p>
<p><br />
}<br />
<br />
下面第二种:<br />
@RequestMapping<br />
&nbsp;public String bookslist(final HttpServletRequest request, HttpServletResponse response, ModelMap model){<br />
&nbsp;&nbsp;List&lt;Map&lt;String, String&gt;&gt; books = new ArrayList&lt;Map&lt;String, String&gt;&gt;();<br />
&nbsp;&nbsp;Map&lt;String, String&gt; book1 = new HashMap&lt;String, String&gt;();<br />
&nbsp;&nbsp;book1.put("id", "1");<br />
&nbsp;&nbsp;book1.put("name", "Spring");<br />
&nbsp;&nbsp;book1.put("price", "18.29");<br />
&nbsp;&nbsp;books.add(book1);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;Map&lt;String, String&gt; book2 = new HashMap&lt;String, String&gt;();<br />
&nbsp;&nbsp;book2.put("id", "2");<br />
&nbsp;&nbsp;book2.put("name", "Hibernate");<br />
&nbsp;&nbsp;book2.put("price", "28.98");<br />
&nbsp;&nbsp;books.add(book2);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;Map&lt;String, String&gt; book3 = new HashMap&lt;String, String&gt;();<br />
&nbsp;&nbsp;book3.put("id", "3");<br />
&nbsp;&nbsp;book3.put("name", "Python");<br />
&nbsp;&nbsp;book3.put("price", "38.22");<br />
&nbsp;&nbsp;books.add(book3);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;model.addAttribute("books", books);<br />
&nbsp;&nbsp;return "booklist";<br />
&nbsp;}</p>
页面为:<br />
<br />
&lt;jmesa:tableFacade <br />
&nbsp;&nbsp;&nbsp;&nbsp; id="booksTable" <br />
&nbsp;&nbsp;&nbsp;&nbsp; items="${books}"<br />
&nbsp;&nbsp;&nbsp;&nbsp; maxRows="10" <br />
&nbsp;&nbsp;&nbsp;&nbsp; maxRowsIncrements="10,20,30" <br />
&nbsp;&nbsp;&nbsp;&nbsp; var="book"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;jmesa:htmlTable width="630px"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jmesa:htmlRow&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;c:forEach items="${book}" var="b"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jmesa:htmlColumn property="<span style="color: #008000"><strong style="color: #993300">${b.key}</strong></span>" title="${b.key}" filterable="false"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/c:forEach&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jmesa:htmlRow&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jmesa:htmlTable&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/jmesa:tableFacade&gt;<br />
<br />
这里注意property中的值. <br />
<br />
今天查看源码, 和昨天想象一样,&nbsp; jmesa在渲染单元格的时候, 分两种, 一种就是map类型, 使用get(key)来取值, 另一种就是普通的javabean对象, 使用getPropertyName()取值渲染.<br />
<p>/*<br />
&nbsp;* Copyright 2004 original author or authors.<br />
&nbsp;*<br />
&nbsp;* Licensed under the Apache License, Version 2.0 (the "License");<br />
&nbsp;* you may not use this file except in compliance with the License.<br />
&nbsp;* You may obtain a copy of the License at<br />
&nbsp;*<br />
&nbsp;*&nbsp;&nbsp;&nbsp; http://www.apache.org/licenses/LICENSE-2.0<br />
&nbsp;*<br />
&nbsp;* Unless required by applicable law or agreed to in writing, software<br />
&nbsp;* distributed under the License is distributed on an "AS IS" BASIS,<br />
&nbsp;* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br />
&nbsp;* See the License for the specific language governing permissions and<br />
&nbsp;* limitations under the License.<br />
&nbsp;*/<br />
package org.jmesa.util;</p>
<p>import <a title="Java爱好者" href="http://www.blogjava.net/rain1102" >Java</a>.util.Collection;<br />
import <a title="Java爱好者" href="http://www.blogjava.net/rain1102" >Java</a>.util.Map;</p>
<p>import org.apache.commons.beanutils.PropertyUtils;<br />
import org.slf4j.Logger;<br />
import org.slf4j.LoggerFactory;</p>
<p>/**<br />
&nbsp;* General utilities to process the Collecton of Beans or the Collection of<br />
&nbsp;* Maps. Most methods wrap or add value to the commons Beanutils.<br />
&nbsp;* <br />
&nbsp;* @since 2.1<br />
&nbsp;* @author Jeff Johnston<br />
&nbsp;*/<br />
public class ItemUtils {</p>
<p>&nbsp;&nbsp;&nbsp; private static final Logger logger = LoggerFactory.getLogger(ItemUtils.class);<br />
&nbsp;&nbsp;&nbsp; public static final String JMESA_ITEM = "jmesa-item";</p>
<p>&nbsp;&nbsp;&nbsp; private ItemUtils() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // hide constructor<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Get the value from the Bean or Map by property.<br />
&nbsp;&nbsp;&nbsp;&nbsp; * <br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param item The Bean or Map.<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param property The Bean attribute or Map key.<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return The value from the Bean or Map.<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static Object getItemValue(Object item, String property) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object itemValue = null;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000"> try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (item instanceof Map) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itemValue = <span style="color: #993300">((Map&lt;?, ?&gt;) item).get(property);<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (itemValue != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return itemValue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ports such as the tags will store the original bean<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object bean = <span style="color: #993300">((Map&lt;?, ?&gt;) item).get(JMESA_ITEM);</span></span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (bean == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logger.debug("the map does not have property " + property);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itemValue = getItemValue(bean, property);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itemValue = <span style="color: #993300">PropertyUtils.getProperty(item, property);</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logger.debug("item class " + item.getClass().getName() + " does not have property " + property);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return itemValue;<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * Get the Class for the property.<br />
&nbsp;&nbsp;&nbsp;&nbsp; * <br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param items The Collection of Beans or Maps.<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param property The Bean attribute or Map key.<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return The Class for the property.<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static Class&lt;?&gt; getPropertyClassType(Collection&lt;?&gt; items, String property)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws Exception {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object item = items.iterator().next();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (item instanceof Map) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Object object : items) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Map map = (Map) object;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object val = map.get(property);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (val == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return val.getClass();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return PropertyUtils.getPropertyType(item, property);<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
</p><img src ="http://www.blogjava.net/rain1102/aggbug/260847.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-03-19 17:43 <a href="http://www.blogjava.net/rain1102/archive/2009/03/19/260847.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jmesa中让Toolbar和Statusbar在同一行</title><link>http://www.blogjava.net/rain1102/archive/2009/03/17/260345.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 17 Mar 2009 14:32:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/03/17/260345.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/260345.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/03/17/260345.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/260345.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/260345.html</trackback:ping><description><![CDATA[需要statusbar和toolbar在同一行. 这里需要自定义toolbar
<p>package com.founder.cst.common;</p>
<p>import <a title="Java爱好者" href="http://www.blogjava.net/rain1102" >Java</a>.util.List;</p>
<p>import org.jmesa.view.ViewUtils;<br />
import org.jmesa.view.component.Row;<br />
import org.jmesa.view.html.HtmlBuilder;<br />
import org.jmesa.view.html.HtmlSnippetsImpl;<br />
import org.jmesa.view.html.component.HtmlTable;<br />
import org.jmesa.view.html.toolbar.AbstractToolbar;<br />
import org.jmesa.view.html.toolbar.MaxRowsItem;<br />
import org.jmesa.view.html.toolbar.ToolbarItem;<br />
import org.jmesa.view.html.toolbar.ToolbarItemType;</p>
<p>public class CustomToolbar extends AbstractToolbar {<br />
&nbsp;@Override<br />
&nbsp;public String render() {<br />
&nbsp;&nbsp;//addToolbarItem(ToolbarItemType.PAGE_NUMBER_ITEMS);<br />
&nbsp;&nbsp;addToolbarItem(ToolbarItemType.FIRST_PAGE_ITEM);<br />
&nbsp;&nbsp;addToolbarItem(ToolbarItemType.PREV_PAGE_ITEM);<br />
&nbsp;&nbsp;addToolbarItem(ToolbarItemType.NEXT_PAGE_ITEM);<br />
&nbsp;&nbsp;addToolbarItem(ToolbarItemType.LAST_PAGE_ITEM);<br />
&nbsp;&nbsp;addToolbarItem(ToolbarItemType.SEPARATOR);<br />
&nbsp;&nbsp;MaxRowsItem maxRowsItem = (MaxRowsItem) addToolbarItem(ToolbarItemType.MAX_ROWS_ITEM);<br />
&nbsp;&nbsp;if (getMaxRowsIncrements() != null) {<br />
&nbsp;&nbsp;&nbsp;maxRowsItem.setIncrements(getMaxRowsIncrements());<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;boolean exportable = ViewUtils.isExportable(getExportTypes());<br />
&nbsp;&nbsp;if (exportable) {<br />
&nbsp;&nbsp;&nbsp;addToolbarItem(ToolbarItemType.SEPARATOR);<br />
&nbsp;&nbsp;&nbsp;addExportToolbarItems(getExportTypes());<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;Row row = getTable().getRow();<br />
&nbsp;&nbsp;List columns = row.getColumns();<br />
&nbsp;&nbsp;boolean filterable = ViewUtils.isFilterable(columns);<br />
&nbsp;&nbsp;if (filterable) {<br />
&nbsp;&nbsp;&nbsp;addToolbarItem(ToolbarItemType.SEPARATOR);<br />
&nbsp;&nbsp;&nbsp;addToolbarItem(ToolbarItemType.FILTER_ITEM);<br />
&nbsp;&nbsp;&nbsp;addToolbarItem(ToolbarItemType.CLEAR_ITEM);<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;<span style="color: #008000">HtmlSnippetsImpl statusBar = new HtmlSnippetsImpl((HtmlTable)this.getTable(), this, this.getCoreContext());<br />
</span>&nbsp;&nbsp;// super render<br />
&nbsp;&nbsp;HtmlBuilder html = new HtmlBuilder();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.table(2).border("0").cellpadding("0").cellspacing("1").close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.tr(3).close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000">html.td(4).close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.append(statusBar.statusBarText());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.tdEnd();<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (ToolbarItem item : this.getToolbarItems()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.td(4).close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.append(item.getToolbarItemRenderer().render());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.tdEnd();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.trEnd(3);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.tableEnd(2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.newline();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.tabs(2);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return html.toString();<br />
&nbsp;}<br />
}<br />
</p><img src ="http://www.blogjava.net/rain1102/aggbug/260345.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-03-17 22:32 <a href="http://www.blogjava.net/rain1102/archive/2009/03/17/260345.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jmesa- create a custom view</title><link>http://www.blogjava.net/rain1102/archive/2009/03/11/259123.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 11 Mar 2009 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/03/11/259123.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/259123.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/03/11/259123.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/259123.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/259123.html</trackback:ping><description><![CDATA[<p>If you want to display a table without the pagination you need to set the max rows to the total rows, and then create a custom view to remove the toolbar. In addition, for this example, lets say that we also want to remove the statusbar? That makes sense as it will not offer any pagination information anyway. </p>
<p>First we need to set the max rows to the total amount of items that we want to display. </p>
<pre class="prettyprint"><span class="pln">tableFacade</span><span class="pun">.</span><span class="pln">setMaxRows</span><span class="pun">(</span><span class="pln">items</span><span class="pun">.</span><span class="pln">size</span><span class="pun">());</span></pre>
<p>Then we need to implement a custom view. If you compare this view to the <a href="http://code.google.com/p/jmesa/source/browse/trunk/jmesa/src/org/jmesa/view/html/HtmlView.java" rel="nofollow">HtmlView</a> in the API you can see that I just removed two lines of code. One to remove the toolbar and one for the status bar. </p>
<pre class="prettyprint"><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">CustomView</span><span class="pln"> &nbsp;</span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">AbstractHtmlView</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br />
&nbsp; &nbsp; </span><span class="kwd">public</span><span class="pln"> </span><span class="typ">Object</span><span class="pln"> render</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br />
&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="typ">HtmlSnippets</span><span class="pln"> snippets </span><span class="pun">=</span><span class="pln"> getHtmlSnippets</span><span class="pun">();</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="typ">HtmlBuilder</span><span class="pln"> html </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">HtmlBuilder</span><span class="pun">();</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">themeStart</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">tableStart</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">theadStart</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">filter</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">header</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">theadEnd</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">tbodyStart</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">body</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">tbodyEnd</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">footer</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">tableEnd</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">themeEnd</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; html</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="pln">snippets</span><span class="pun">.</span><span class="pln">initJavascriptLimit</span><span class="pun">());</span><span class="pln"><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">return</span><span class="pln"> html</span><span class="pun">.</span><span class="kwd">toString</span><span class="pun">();</span><span class="pln"><br />
&nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br />
</span><span class="pun">}</span></pre>
<p>Lastly, just plug your custom view into the TableFacade. </p>
<h4><a name="API">API</h4>
<pre class="prettyprint"><span class="pln">tableFacade</span><span class="pun">.</span><span class="pln">setView</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">CustomView</span><span class="pun">());</span></pre>
<h4><a name="Tags">Tags</h4>
<pre class="prettyprint"><span class="pun">&lt;</span><span class="tag">jmesa:tableFacade</span><span class="pln"> </span><span class="atn">view</span><span class="pun">=</span><span class="atv">"com.mycompany.CustomView"</span><span class="pun">&gt;</span></pre>
</a><img src ="http://www.blogjava.net/rain1102/aggbug/259123.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-03-11 15:15 <a href="http://www.blogjava.net/rain1102/archive/2009/03/11/259123.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jmesa中的Limit使用</title><link>http://www.blogjava.net/rain1102/archive/2009/03/06/258296.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 06 Mar 2009 13:39:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/03/06/258296.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/258296.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/03/06/258296.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/258296.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/258296.html</trackback:ping><description><![CDATA[<p>&nbsp; TableFacade tableFacade = TableFacadeFactory.createTableFacade("structuresTable", request);<br />
&nbsp;&nbsp;tableFacade.setColumnProperties("chkbox", "id", "formula", "molTable.molName", "molTable.cas", "mdlNumber", "molWeight");<br />
&nbsp;&nbsp;tableFacade.setEditable(true);<br />
&nbsp;&nbsp;tableFacade.setMaxRows(10);<br />
&nbsp;&nbsp;tableFacade.setMaxRowsIncrements(10, 20, 30);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<span style="color: #008000">tableFacade.setTotalRows(cd_ids.size());</span><br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<span style="color: #008000">Limit limit = tableFacade.getLimit();<br />
&nbsp;&nbsp;int rowStart = limit.getRowSelect().getRowStart();<br />
&nbsp;&nbsp;int rowEnd = limit.getRowSelect().getRowEnd();<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;List&lt;Long&gt; curResultIds = cd_ids.subList(rowStart, rowEnd);<br />
</span>&nbsp;&nbsp;<br />
&nbsp;&nbsp;List&lt;ACD1Structure&gt; curStructures&nbsp;&nbsp; = structureService.getACD1StructuresByIds(curResultIds);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;tableFacade.setItems(curStructures);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;HtmlTable table = (HtmlTable) tableFacade.getTable();<br />
&nbsp;&nbsp;table.getTableRenderer().setWidth("1000px");<br />
&nbsp;&nbsp;table.getRow().setUniqueProperty("id");<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;HtmlColumn smilesColumn = table.getRow().getColumn("id");<br />
&nbsp;&nbsp;smilesColumn.setEditable(false);<br />
&nbsp;&nbsp;smilesColumn.setTitle(messageSource.getMessage("chemical.structure.title", null, request.getLocale()));<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;HtmlColumn formulaColumn = table.getRow().getColumn("formula");<br />
&nbsp;&nbsp;formulaColumn.setEditable(false);<br />
&nbsp;&nbsp;formulaColumn.setTitle(messageSource.getMessage("chemical.formula.title", null, request.getLocale()));<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;HtmlColumn molNameColumn = table.getRow().getColumn("molTable.molName");<br />
&nbsp;&nbsp;molNameColumn.setEditable(false);<br />
&nbsp;&nbsp;molNameColumn.setTitle(messageSource.getMessage("chemical.name.title", null, request.getLocale()));<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;HtmlColumn casColumn = table.getRow().getColumn("molTable.cas");<br />
&nbsp;&nbsp;casColumn.setEditable(false);<br />
&nbsp;&nbsp;casColumn.setTitle(messageSource.getMessage("chemical.cas.title", null, request.getLocale()));<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;HtmlColumn mdlNumberColumn = table.getRow().getColumn("mdlNumber");<br />
&nbsp;&nbsp;mdlNumberColumn.setEditable(false);<br />
&nbsp;&nbsp;mdlNumberColumn.setTitle(messageSource.getMessage("chemical.mdl.title", null, request.getLocale()));<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;HtmlColumn molWeightColumn = table.getRow().getColumn("molWeight");<br />
&nbsp;&nbsp;molWeightColumn.setEditable(false);<br />
&nbsp;&nbsp;molWeightColumn.setTitle(messageSource.getMessage("chemical.mw.title", null, request.getLocale()));<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;//for smiles column<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;smilesColumn.setFilterable(false);<br />
&nbsp;&nbsp;smilesColumn.setSortable(false);<br />
&nbsp;&nbsp;smilesColumn.getCellRenderer().setCellEditor(new CellEditor() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Object getValue(Object item, String property, int rowcount) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object value = new BasicCellEditor().getValue(item, property, rowcount);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String bgcolor = (rowcount % 2 == 0) ? "e3e3e3" : "ffffff";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HtmlBuilder html = new HtmlBuilder();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.append("&lt;img class=\"hand\" width=\"140\" onclick=\"supplierInfo('"+value+"')\" src=\""+request.getContextPath()+"/compoundsearch/showAsImage.do?id="+value+"&amp;bgcolor="+bgcolor+"\"&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html.aEnd();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return html.toString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</p>
<p>&nbsp;&nbsp;//for checkbox column<br />
&nbsp;&nbsp;HtmlColumn chkbox = table.getRow().getColumn("chkbox");<br />
&nbsp;&nbsp;chkbox.getCellRenderer().setWorksheetEditor(new CheckboxWorksheetEditor());<br />
&nbsp;&nbsp;chkbox.setTitle("&amp;nbsp;");<br />
&nbsp;&nbsp;chkbox.setFilterable(false);<br />
&nbsp;&nbsp;chkbox.setSortable(false);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;//render<br />
&nbsp;&nbsp;String html = tableFacade.render();</p><img src ="http://www.blogjava.net/rain1102/aggbug/258296.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-03-06 21:39 <a href="http://www.blogjava.net/rain1102/archive/2009/03/06/258296.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jmesa2.4.1小例子</title><link>http://www.blogjava.net/rain1102/archive/2009/03/04/257888.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 04 Mar 2009 14:21:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/03/04/257888.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/257888.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/03/04/257888.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/257888.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/257888.html</trackback:ping><description><![CDATA[action层返回一个对象的List格式，比如如下代码：<br />
<span style="color: #008000">List&lt;Structure&gt; structures = structureService.getAllStructures();<br />
</span><br />
在JSP页面中代码为：<br />
&lt;%@ page language="<a title="Java爱好者" href="http://www.blogjava.net/rain1102" >Java</a>" contentType="text/html; charset=UTF-8"%&gt;<br />
&lt;%@ taglib uri="/WEB-INF/tld/jmesa.tld" prefix="jmesa"%&gt;<br />
&lt;%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%&gt;<br />
&lt;html&gt;<br />
&nbsp;&lt;head&gt;<br />
&nbsp;&nbsp;&lt;title&gt;&lt;spring:message code="chemical.cst" /&gt;<br />
&nbsp;&nbsp;&lt;/title&gt;<br />
&nbsp;&nbsp;&lt;link href="${pageContext.request.contextPath}/css/jmesa.css" rel="stylesheet" type="text/css" /&gt;<br />
&nbsp;&nbsp;&lt;script type="text/javascript" src="${pageContext.request.contextPath}/js/common/jquery-1.2.6.js"&gt;&lt;/script&gt;<br />
&nbsp;&nbsp;&lt;script type="text/javascript" src="${pageContext.request.contextPath}/js/jmesa.js"&gt;&lt;/script&gt;<br />
&nbsp;&nbsp;&lt;script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.jmesa.js"&gt;&lt;/script&gt;<br />
&nbsp;&nbsp;&lt;script type="text/javascript"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">&nbsp;function onInvokeAction(id) {&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;createHiddenInputFieldsForLimitAndSubmit(id);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
</span>&nbsp;&nbsp;&lt;/script&gt;<br />
&nbsp;&lt;/head&gt;<br />
&nbsp;&lt;body&gt;<br />
&nbsp;&nbsp;<span style="color: #008000">&lt;form action="${pageContext.request.contextPath}/cst/structures.do" method="post"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;div id="structuresTablePlaceholder"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;jmesa:tableFacade <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id="structuresTable" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items="${structures}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxRows="10" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxRowsIncrements="10,20,30" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var="structrue"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jmesa:htmlTable width="630px"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jmesa:htmlRow&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jmesa:htmlColumn property="smiles" title="Smiles" filterable="false"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jmesa:htmlColumn property="formula" title="Formula" filterable="false"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jmesa:htmlColumn property="mdlNumber" title="MDL" filterable="false"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jmesa:htmlColumn property="molWeight" title="MW" filterable="false"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/jmesa:htmlRow&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/jmesa:htmlTable&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/jmesa:tableFacade&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br />
&nbsp;&nbsp;&lt;/form&gt;<br />
</span>&nbsp;&lt;/body&gt;<br />
&lt;/html&gt;<br /><img src ="http://www.blogjava.net/rain1102/aggbug/257888.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-03-04 22:21 <a href="http://www.blogjava.net/rain1102/archive/2009/03/04/257888.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jQuery中一些不常用的方法属性【转载】</title><link>http://www.blogjava.net/rain1102/archive/2009/03/03/257656.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 03 Mar 2009 13:24:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/03/03/257656.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/257656.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/03/03/257656.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/257656.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/257656.html</trackback:ping><description><![CDATA[<h4>index(subject) </h4>
<p>搜索与参数表示的对象匹配的元素，并返回相应元素的索引值。如果找到了匹配的元素，从0开始返回；如果没有找到匹配的元素，返回-1。 </p>
<h4>data()</h4>
<p>data(elem)：为页面对象添加唯一标识。</p>
<p>data(name, value)：将数据保存在元素的一个key里面。$("#box").data("shape","rectangle")。</p>
<p>data(name)：获取值。$("#box").data("shape") //"rectangle"。</p>
<p>removeData(name)：删除通过data()方法赋予的值。$("#box").removeData("shape")。</p>
<h4>attr(key,fn)</h4>
<p>为所有匹配的元素设置一个计算的属性值。不提供值，而是提供一个函数，由这个函数计算的值作为属性值。 </p>
<h4>hasClass(class) </h4>
<p>检查当前的元素是否含有某个特定的类，如果有，则返回true。这其实就是is("." + class)。</p>
<h4>val(val) </h4>
<p>设置每一个匹配元素的值。在 jQuery 1.2, 这也可以为select元件赋值。参数val(String)要设置的值。</p>
<p>check,select,radio等都能使用为之赋值。参数val(Array&lt;String&gt;)用于 check/select 的值。</p>
<h4>slice(start,[end]) </h4>
<p>选取一个匹配的子集。</p>
<h4>add(expr) </h4>
<p>把与表达式匹配的元素添加到jQuery对象中。这个函数可以用于连接分别与两个表达式匹配的元素结果集。</p>
<p>参数expr(String, DOMElement, Array&lt;DOMElement&gt;)用于匹配元素并添加的表达式字符串，或者用于动态生成的HTML代码，如果是一个字符串数组则返回多个元素。</p>
<h4>nextAll([expr]) </h4>
<p>查找当前元素之后的所有元素。 </p>
<h4>prev([expr]) </h4>
<p>取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合。 </p>
<h4>prevAll([expr]) </h4>
<p>查找当前元素之前所有的同辈元素。</p>
<h4>andSelf() </h4>
<p>将先前所选的加入当前元素中。</p>
<h4>replaceWith(content) </h4>
<p>将所有匹配的元素替换成指定的HTML或DOM元素。参数content(String, Element, jQuery):用于将匹配元素替换掉的内容。</p>
<h4>replaceAll(selector) </h4>
<p>用匹配的元素替换掉所有 selector匹配到的元素。参数selector(选择器)用于查找所要被替换的元素。</p>
<h4>clone([true]) </h4>
<p>克隆匹配的DOM元素并且选中这些克隆的副本。设置参数[true]是对象的所有事件处理一并克隆。</p>
<h4>offset() </h4>
<p>获取匹配元素在当前视口的相对偏移。返回的对象包含两个整形属性：top 和 left。此方法只对可见元素有效。</p>
<p>返回Object{top,left}。</p>
<h4>one(type,[data],fn) </h4>
<p>为每一个匹配元素的特定事件（像click）绑定一个<em>一次性</em>的事件处理函数。</p>
<p>在每个对象上，这个事件处理函数只会被执行一次。其他规则与bind()函数相同。这个事件处理函数会接收到一个事件对象，可以通过它来阻止（浏览器）默认的行为。如果既想取消默认的行为，又想阻止事件起泡，这个事件处理函数必须返回false。</p>
<h4>toggle(fn,fn2,[fn3,fn4,...]) </h4>
<p>每次点击时切换要调用的函数。函数数目可以是多个。</p>
<h4>stop() </h4>
<p>停止所有在指定元素上正在运行的动画。如果队列中有等待执行的动画，他们将被马上执行。</p>
<h4>queue([callback/queue])</h4>
<p>queue：返回指向第一个匹配元素的队列(将是一个函数数组。</p>
<p>queue(callback)：在匹配的元素的动画队列中添加一个函数。</p>
<p>queue(queue)：将匹配元素的动画队列用新的一个队列来代替(函数数组)。 </p>
<h4>dequeue() </h4>
<p>从动画队列中移除一个队列函数。</p>
<h4>jQuery.browser.version </h4>
<p>浏览器渲染引擎版本号。</p>
<h4>jQuery.boxModel</h4>
<p>当前页面中浏览器是否使用标准盒模型渲染页面。</p>
<p>PS:以前很少用这些方法属性，很多还不知道。这跟中文CHM版jQuery API不无关系，那本广为流传的中文版手册已经过时，建议直接阅读<a href="http://docs.jquery.com/Main_Page" target="_blank">官方文档</a>。</p><img src ="http://www.blogjava.net/rain1102/aggbug/257656.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-03-03 21:24 <a href="http://www.blogjava.net/rain1102/archive/2009/03/03/257656.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>连动出发事件在jQuery中是如此简单与优美</title><link>http://www.blogjava.net/rain1102/archive/2009/03/03/257654.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 03 Mar 2009 13:15:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/03/03/257654.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/257654.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/03/03/257654.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/257654.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/257654.html</trackback:ping><description><![CDATA[<p>当页面加载完需要对一些数据进行操作时候，我这里当取完供应商列表，需要默认选择第一个供应商，然后再去第一个供应商相关信息。<br />
<span style="color: #008000">if ($('#suppliertable').find('tr:eq(0)') != undefined) {<br />
&nbsp;&nbsp;&nbsp;$('#suppliertable').find('tr:eq(0)').trigger('click'); <br />
&nbsp;}</span><br />
</p>
上面为table格式形式的列表。但如果为select元素呢，比如做级联下拉菜单则可以这样写：<br />
<span style="color: #008000">if ($('#chemical_regn').get(0) != undefined) {<br />
&nbsp; &nbsp;&nbsp;$('#chemical_regn').get(0).options[0].selected = true;&nbsp;&nbsp; &nbsp;//&nbsp;$('#chemical_regn').[0].selectedIndex = 0;<br />
&nbsp;&nbsp;&nbsp;$('#chemical_regn').trigger('click'); <br />
&nbsp;}<br />
</span><img src ="http://www.blogjava.net/rain1102/aggbug/257654.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-03-03 21:15 <a href="http://www.blogjava.net/rain1102/archive/2009/03/03/257654.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jQuery基础教程笔记</title><link>http://www.blogjava.net/rain1102/archive/2009/02/14/254694.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Sat, 14 Feb 2009 12:25:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/02/14/254694.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/254694.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/02/14/254694.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/254694.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/254694.html</trackback:ping><description><![CDATA[<p>第一章:入门</p>
<p>$()取得页面中的元素</p>
<p>$(document).ready(function(){<br />
&nbsp;$('.poem-stanza').addClass('emphasized');<br />
});</p>
<p>说明:</p>
<p>$('.poem-stanza') 　　　　　　//取得页面中添加了类poem-stanza的元素<br />
.addClass('emphasized');　　　//添加Css样式，emphasized为类样式<br />
.removeClass();<br />
&nbsp;<br />
第二章:选择符</p>
<p>$(document).ready(function(){<br />
&nbsp;//CSS选择符<br />
&nbsp;$('#selectedplays&gt;li').addClass('horizontal');　　　　　　　　　　//查找id为selectedplays元素的顶层子元素li，添加样式<br />
&nbsp;$('#selectedplays&gt;li:not(.horizotal)').addClass('sublevel');　　　 //查找id为selectedplays元素的顶层子元素li，并且没有类horizotal　</p>
<p>&nbsp;//XPath选择符<br />
&nbsp;$('a[@href^="mailto:"]').addClass('mailto');　　　　　　　　　　 //查找锚元素中属性href以&#8220;mailto:&#8221;开头的元素<br />
&nbsp;$('a[@href$=".pdf"]').addClass('pdflink');　　　　　　　　　　　 //查找锚元素中属性href以&#8220;.pdf&#8221;结尾的元素<br />
&nbsp;$('a[@href*="mysite.com"]').addClass('mysite');　　　　　　　 //查找锚元素中属性href中包含&#8220;mysite.com&#8221;的元素（任意位置）</p>
<p>&nbsp;//自定义选择符<br />
&nbsp;$('tr:odd').addClass('odd');　　　　　　　　　　　　　　　 　　 //查找奇数行<br />
&nbsp;$('tr:even').addClass('even');　　　　　　　　　　　　　　 　　 //查找偶数行<br />
&nbsp;//注：:odd()和:even()选择符使用的都是Javascript本身的从0开始得编号方式。表格的第1行编号为0（偶数），而第2行编号为1（奇数）<br />
&nbsp;$('td:contains("Henry")').addClass('highlight');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　 //查找td中包含"Henry"的</p>
<p>&nbsp;//DOM遍历方法<br />
&nbsp;$('th').parent().addClass('tableheading');　　　　　　　　 　　//查找th的父元素即标题行<br />
&nbsp;$('tr:not([th]):even').addClass('even');　　　　　　　　&nbsp;&nbsp;&nbsp; 　　//查找tr元素中不包含子为th的，并且是偶数行<br />
&nbsp;$('tr:not([th]):odd').addClass('odd');　　　　　　　　　　 <br />
&nbsp;$('td:contains("Henry")').next().addClass('highlight');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　　//查找td中包含&#8220;Henry&#8221;的单元格的下一个单元格<br />
&nbsp;$('td:contains("Comedy")').siblings().addClass('highlight');　　//查找td中包含&#8220;Comedy&#8221;的同级单元格<br />
&nbsp;$('td:contains("Comedy")').parent().find('td:gt(0)').addClass('highlight');<br />
&nbsp;//查找td中包含&#8220;Comedy&#8221;的父，再去查找td单元格编号大于0的单元格<br />
&nbsp;$('td:contains("Comedy)').parent().find('td').not(':contains("Comedy")').addClass('highlight');<br />
&nbsp;//查找td中包含&#8220;Comedy&#8221;的父，再去查找td单元格不包含&#8220;Comedy&#8221;的单元格</p>
<p>&nbsp;//访问DOM元素<br />
&nbsp;var tag = $('#myelement').get(0).tagName;<br />
});</p>
<p><br />
第三章：事件――扣动扳机</p>
<p>绑定事件：</p>
<p>&nbsp; .bind(&#8216;click&#8217;,function(){})<br />
&nbsp; $(&#8216;#switcher-large&#8217;).bind(&#8216;click&#8217;,function(){&#8230;});给id为switcher-large的元素绑定click事件</p>
<p>&nbsp; 可简写为<br />
&nbsp; $(&#8216;#switcher-large&#8217;).click(function(){&#8230;});</p>
<p>&nbsp; 方法：<br />
&nbsp; .toggle(function(){},function(){})</p>
<p>接受两个参数（都是函数）第一次点击调用第一个函数，第二次点击调用第二个<br />
$(&#8216;#switcher h3&#8217;).toggle(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(&#8216;#switcher .button&#8217;).addClass(&#8216;hidden&#8217;);</p>
<p>},function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(&#8216;#switcher .button&#8217;).removeClass(&#8216;hidden&#8217;);</p>
<p>});</p>
<p>.toggleClass()是一种跟优雅得方案，但对于交替执行的操作而言，.toggle()的适用性更强</p>
<p>$(&#8216;#switcher h3&#8217;).click(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(&#8216;#switcher .button&#8217;).toggleClass(&#8216;hidden&#8217;); //自动检查该类是否存在<br />
});</p>
<p>&nbsp; .hover(function(){},function(){})</p>
<p>接受两个函数参数，第一个指针进入，第二个指针离开</p>
<p>$(&#8216;#switcher .button&#8217;).hover(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(this).addClass(&#8216;hover&#8217;);<br />
},function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(this).removeClass(&#8216;hover&#8217;);<br />
});</p>
<p>&nbsp; .unbind(&#8216;click&#8217;)</p>
<p>移除事件<br />
&nbsp; .trigger(&#8216;click&#8217;)</p>
<p>模拟用户操作<br />
$(&#8216;#switcher&#8217;).trigger(&#8216;click&#8217;); 模拟点击了一次switcher</p>
<p>第四章：效果――为操作添加艺术性</p>
<p>1.修改内联CSS</p>
<p>语法： <br />
.css(&#8216;property&#8217;,&#8217;value&#8217;);<br />
.css(&#8216;property&#8217;:&#8217;value&#8217;,&#8217;property&#8217;:&#8217;value&#8217;);</p>
<p>用法：<br />
var currentSize = $(&#8216;div.speech&#8217;).css(&#8216;fontSize&#8217;);//得到div.speech得字体大小<br />
var num = parasFloat(currentSize,10);&nbsp; //将currentSize转换为Float型<br />
var unit = currentSize.slice(-2); //返回从指定的字符开始的一个子字符串，-2为倒数第二个<br />
num *= 1.5;<br />
$(&#8216;div.speech&#8217;).css(&#8216;fontSize&#8217;,num+unit); //设置样式</p>
<p>2.基本的显示和隐藏</p>
<p>.show();<br />
.hide();</p>
<p>用法：<br />
$(&#8216;p:eq(1)&#8217;).hide(); //将第二个段落隐藏</p>
<p>3.效果和速度<br />
指定显示速度<br />
3种：slow、normal和fast 时间：0.6、0,4、0.2。也可以指定.show(850)<br />
$(&#8216;p:eq(2)&#8217;).show(&#8216;slow&#8217;);</p>
<p>淡入和淡出</p>
<p>.fadeIn();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //淡出<br />
.fadeOut();&nbsp;&nbsp; //淡出</p>
<p>$(&#8216;p:eq(2)&#8217;).fadeIn(&#8216;slow&#8217;);</p>
<p>4.多重效果</p>
<p>语句：.animate({param1:&#8217;value1&#8217;,parame2:&#8217;value2&#8217;},speed,function(){回调});</p>
<p>用法：$(&#8216;p:eq(1)&#8217;).animate({height:&#8217;show&#8217;,width:&#8217;show&#8217;,opacity:&#8217;show&#8217;},&#8217;slow&#8217;);</p>
<p>这里使用简写的show将高度、宽度回复到被隐藏之前的值</p>
<p>5.并发与排队效果<br />
处理一组元素<br />
$(&#8216;div.buttont&#8217;).animate({left:650},&#8217;slow&#8217;).animate({height:38},&#8217;slow&#8217;);<br />
先移动到left为650的位置，在将高度设置为38<br />
$(&#8216;div.button&#8217;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .fadeTo(&#8216;slow&#8217;,0.5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //先淡化<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .animate({left:650},&#8217;slow&#8217;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //在移动<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .fadeTo(&#8216;slow&#8217;,1.0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //在淡出<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .slideUp(&#8216;slow&#8217;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //最后滑到上方隐藏</p>
<p>注意：排队不适用于其他的非效果方法，例如：.css()<br />
处理多组元素</p>
<p>$(&#8216;p:eq(2)&#8217;).slideUp(&#8216;slow&#8217;).next().slideDown(&#8216;slow&#8217;); 段落3向上滑出，同时段落4向下滑入</p>
<p>回调函数：</p>
<p>Var $thisPara = $(&#8216;p:eq(2)&#8217;);<br />
$(&#8216;p:eq(2)&#8217;).next().slideDown(&#8216;slow&#8217;,function(){</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $thisPara.slideUp(&#8216;slow&#8217;);</p>
<p>});</p>
<p>段落4下滑完成后，段落3才开始上滑</p>
<p>第五章：DOM操作-基于命令改变页面</p>
<p>1.操作属性<br />
非css属性</p>
<p>$(document).ready(function(){<br />
&nbsp;&nbsp;&nbsp; $('div.chapter a[@href*=wikipedia]').each(function(index){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $thisLink = $(this);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $thisLink.attr({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'rel': 'external',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'id': 'wikilink-' + index,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'title': 'learn more about ' + $thisLink.text() + ' at wikipedia'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp; });<br />
});</p>
<p>//遍历div.chapter 下面所以锚元素href中包含wikipedia，为其添加属性<br />
深入理解$()工厂函数<br />
$('&lt;a href="#top"&gt;back to top&lt;/a&gt;');&nbsp;&nbsp;&nbsp; 创建新元素</p>
<p>2.插入新元素</p>
<p>.insertBefore()<br />
.before()</p>
<p>作用相同，区别取决于将它们与其他方法进行连缀</p>
<p>.insertAfter()<br />
.after()</p>
<p>// $('div.chapter p').after('&lt;a href="#top"&gt;back to top&lt;/a&gt;');</p>
<p>// $('div.chapter p').before('&lt;a href="#top"&gt;back to top&lt;/a&gt;');</p>
<p>$('&lt;a href="#aaa"&gt;back to top&lt;/a&gt;').insertAfter('div.chapter p');</p>
<p>$('&lt;a id="aaa" name="top"&gt;&lt;/a&gt;').prependTo('body');</p>
<p>.perpendTo插入了作为目标的锚</p>
<p>// $('&lt;a href="#top"&gt;back to top&lt;/a&gt;').insertBefore('div.chapter p');</p>
<p>3.移动元素</p>
<p>$('span.footnote').insertBefore('#footer');<br />
将span中类为footnote的插入到id为footer的前面<br />
标注、编号和链接到上下文<br />
&nbsp;&nbsp;&nbsp; $('span.footnote').each(function(index){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(this)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .before('&lt;a href="#foot-note-' + (index+1) + <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '" id="context-' + (index+1) + <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '" class="context"&gt;&lt;sup&gt;' + (index+1) + <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&lt;/sup&gt;&lt;/a&gt;')；<br />
&nbsp;&nbsp;&nbsp; });<br />
$('span.footnote').insertBefore('#footer');</p>
<p>遍历span.footnote，在各个元素前加标注后，在将span.footnote添加到#footer前</p>
<p>插入脚注</p>
<p>$('&lt;ol id="notes"&gt;&lt;/ol&gt;').insertAfter('div.chapter');<br />
$('span.footnote').each(function(index){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(this)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .before('&lt;a href="#foot-note-' + (index+1) + <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '" id="context-' + (index+1) + <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '" class="context"&gt;&lt;sup&gt;' + (index+1) + <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&lt;/sup&gt;&lt;/a&gt;')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .appendTo('#notes')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .append('&amp;nbsp;(&lt;a href="#context-'+(index+1)+'"&gt;context&lt;/a&gt;)');&nbsp;&nbsp;&nbsp; <br />
});</p>
<p>先创建一个ol元素notes，并添加到div.chapter后面，遍历span.footnote，先添加标注，然后通过appendTo其添加到ol末尾，最后又通过append添加一个锚元素。</p>
<p>4.包装元素</p>
<p>.wrap()<br />
.wrap('&lt;li id="foot-note-' + (index+1) + '"&gt;&lt;/li&gt;')</p>
<p>5.复制元素</p>
<p>.clone()</p>
<p>$('div.chapter p:eq(0)').clone().insertBefore('div.chapter');</p>
<p>将div.chapter中得第一段复制后插入在div.chapter前面</p>
<p>深度复制</p>
<p>$('div.chapter p:eq(0)').clone(false)</p>
<p>只复制结构，内部的文本没有复制过来，因为文本也是DOM节点</p>
<p>通过复制创建突出引用</p>
<p>var $parentParagraph = $(this).parent('p');</p>
<p>$parentParagraph.css('position','relative');</p>
<p>$(this).clone()</p>
<p>.addClass('pulled')</p>
<p>.prependTo($parentParagraph);</p>
<p>修饰突出引用</p>
<p>$clonedCopy.addClass('pulled')<br />
.find('span.drop')<br />
&nbsp;&nbsp;&nbsp; .html('&amp;hellip;')<br />
&nbsp;&nbsp;&nbsp; .end()<br />
&nbsp;&nbsp;&nbsp; .prependTo($parentParagraph)<br />
&nbsp;&nbsp;&nbsp; .wrap('&lt;div class="pulled-wrapper"&gt;&lt;/div&gt;');</p>
<p>var clonedText = $clonedCopy.text();</p>
<p>$clonedCopy.html(clonedText);</p>
<p>第六章：AJAX 让网站与时俱进</p>
<p>1.基于请求加载数据<br />
追加HTML</p>
<p>//载入远程 HTML 文件代码并插入至 DOM 中</p>
<p>$('#dictionary').load('a.html',function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Alert(&#8220;加载完毕！&#8221;);//回调函数<br />
}) </p>
<p>操作JavaScript对象</p>
<p>JSON：<br />
[<br />
{<br />
&nbsp;&nbsp;&nbsp; "term": "BACKBITE",<br />
&nbsp;&nbsp;&nbsp; "part": "v.t.",<br />
&nbsp;&nbsp;&nbsp; "definition": "To speak of a man as you find him when he can't find you."<br />
&nbsp; },<br />
&nbsp; {<br />
&nbsp;&nbsp;&nbsp; "term": "BEARD",<br />
&nbsp;&nbsp;&nbsp; "part": "n.",<br />
&nbsp;&nbsp;&nbsp; "definition": "The hair that is commonly cut off by those who justly execrate the absurd Chinese custom of shaving the head."<br />
&nbsp; }<br />
]</p>
<p>JQuery:</p>
<p>$.getJSON('b.json',function(data){ //通过 HTTP GET 请求载入 JSON 数据<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $.each(data,function(entryIndex,entry){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var html = '&lt;div class="entry"&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;h3 class="term"&gt;' + entry['term'] + '&lt;/h3&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;div class="pare"&gt;' + entry['part'] + '&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;div class="definition"&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += entry['definition'];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(entry['quote']){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;div class="quote"&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $.each(entry['quote'],function(lineIndex,line){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;div class="quote-line"&gt;' + line + '&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(entry['author']){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;div class="quote-author"&gt;' + entry['author'] + '&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</p>
<p>执行脚本</p>
<p>通过 HTTP GET 请求载入并执行一个 JavaScript 文件</p>
<p>$.getScript('c.js',function(){<br />
&nbsp;&nbsp;&nbsp; Alert(&#8220;加载完毕&#8221;);//回调函数<br />
});</p>
<p>加载XML文档</p>
<p>//通过远程 HTTP GET 请求载入信息。</p>
<p>$.get('d.xml',function(data){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(data).find('entry').each(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $entry = $(this);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var html = '&lt;div class="entry"&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;h3 class="term"&gt;' + $entry.attr('term') + '&lt;/h3&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;div class="part"&gt;' + $entry.attr('part') + '&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;div class="definition"&gt;'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += $entry.find('definition').text();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var $quote = $entry.find('quote');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($quote.length){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;div class="quote"&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $quote.find('line').each(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;div class="quote-line"&gt;' + $(this).text() + '&lt;/div&gt;';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($quote.attr('author')){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;div class="quote-author"&gt;' + $quote.attr('author') + '&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html += '&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('#dictionary').append($(html));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</p>
<p>2.选择数据格式</p>
<p>3.向服务器传递数据</p>
<p>4.关注请求</p>
<p>方法：</p>
<p>.ajaxStart()<br />
.ajaxStop()</p>
<p>当AJAX请求开始且尚未进行其他传输时，会触发.ajaxStart()的回调函数，相反，当最后一次活动请求终止时，则会执行通过.ajaxStop()注册的回调函数。</p>
<p>示例：&nbsp;&nbsp; </p>
<p>//当请求时，显示#loading，结束时，隐藏loading</p>
<p>$(document).ready(function(){<br />
$('#loading').ajaxStart(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp; $(this).show();<br />
}).ajaxStop(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp; $(this).hide();<br />
});<br />
});</p>
<p>5.Ajax和事件</p>
<p>限制函数绑定的作用域</p>
<p>$(document).ready(function(){<br />
var bindBehaviors = function(scope){<br />
&nbsp;&nbsp;&nbsp;&nbsp; $('h3',scope).click(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(this).toggleClass('highlighted'); <br />
&nbsp;&nbsp;&nbsp;&nbsp; });<br />
};&nbsp; </p>
<p>bindBehaviors(this);</p>
<p>//这里的绑定作用域是document</p>
<p>$(document).ready(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp; $('#letter-a .button').click(function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('#dictionary').hide().load('a.html',function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bindBehaviors(this);<br />
//这里的是文档中的所以&lt;h3&gt;元素<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(this).fadeIn();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp;&nbsp; });<br />
});</p>
<p>});</p>
<p>6.安全限制</p>
<p>&nbsp;<br />
</p><img src ="http://www.blogjava.net/rain1102/aggbug/254694.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-02-14 20:25 <a href="http://www.blogjava.net/rain1102/archive/2009/02/14/254694.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>强烈推荐：240多个jQuery插件 </title><link>http://www.blogjava.net/rain1102/archive/2009/02/12/254451.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 12 Feb 2009 13:39:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/02/12/254451.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/254451.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/02/12/254451.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/254451.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/254451.html</trackback:ping><description><![CDATA[<h2 style="font-size: 10pt">
<p sizset="22" sizcache="2"><img class="news1" title="jquery" height="117" alt="jquery" src="http://www.kollermedia.at/wp-content/themes/kollermedia/images/news/jquery.gif" width="164" /><a class="extern" href="http://www.jquery.com/" target="_blank">jQuery</a> is definitely my favourite Javascript Library and this ultimate jQuery Plugin List is for all other jQuery Lovers out there. At the moment there are about <strong>240+ awesome Plugins in the List</strong> I&#8217;m sure that there are a lot of other plugins out there - so if you knew one that&#8217;s not in the list <a href="http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/#comments">please post a comment</a> and i will add it. Thanks!</p>
<h3>File upload</h3>
<p sizset="24" sizcache="2"><a class="extern" href="http://www.phpletter.com/Demo/AjaxFileUpload-Demo/" target="_blank">Ajax File Upload</a><br />
<a class="extern" href="http://www.pixeline.be/experiments/jqUploader/" target="_blank">jQUploader</a><br />
<a class="extern" href="http://www.fyneworks.com/jquery/multiple-file-upload/" target="_blank">Multiple File Upload plugin</a><br />
<a class="extern" href="http://www.appelsiini.net/projects/filestyle" target="_blank">jQuery File Style</a><br />
<a class="extern" href="http://jquery.com/plugins/project/InputFileCSS" target="_blank">Styling an input type file</a><br />
<a class="extern" href="http://digitalbush.com/projects/progress-bar-plugin" target="_blank">Progress Bar Plugin</a></p>
<h3>Form Validation</h3>
<p sizset="30" sizcache="2"><a class="extern" href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/" target="_blank">jQuery Validation</a><br />
<a class="extern" href="http://www.dyve.net/jquery/?autohelp" target="_blank">Auto Help</a><br />
<a class="extern" href="http://www.willjessup.com/sandbox/jquery/form_validator/form_validate.html" target="_blank">Simple jQuery form validation</a><br />
<a class="extern" href="http://letmehaveblog.blogspot.com/2007/08/easy-client-side-web-forms-validations.html" target="_blank">jQuery XAV - form validations</a><br />
<a class="extern" href="http://itgroup.com.ph/alphanumeric/" target="_blank">jQuery AlphaNumeric</a><br />
<a class="extern" href="http://digitalbush.com/projects/masked-input-plugin" target="_blank">Masked Input</a><br />
<a class="extern" href="http://www.dennydotnet.com/post/TypeWatch-jQuery-Plugin.aspx" target="_blank">TypeWatch Plugin</a><br />
<a class="extern" href="http://jquery.com/plugins/project/TextLimiter" target="_blank">Text limiter for form fields</a><br />
<a class="extern" href="http://www.shawngo.com/gafyd/index.html" target="_blank">Ajax Username Check with jQuery</a></p>
<h3>Form - Select Box stuff</h3>
<p sizset="39" sizcache="2"><a class="extern" href="http://jquery.sanchezsalvador.com/page/jquerycombobox.aspx" target="_blank">jQuery Combobox</a><br />
<a class="extern" href="http://www.ajaxray.com/blog/2007/11/08/jquery-controlled-dependent-or-cascading-select-list-2/" target="_blank">jQuery controlled dependent (or Cascadign) Select List</a><br />
<a class="extern" href="http://code.google.com/p/jqmultiselects/" target="_blank">Multiple Selects</a><br />
<a class="extern" href="http://www.texotela.co.uk/code/jquery/select/" target="_blank">Select box manipulation</a><br />
<a class="extern" href="http://code.google.com/p/jqueryselectcombo/" target="_blank">Select Combo Plugin</a><br />
<a class="extern" href="http://www.msxhost.com/jquery/linked-selects/json/%20target=">jQuery - LinkedSelect</a><br />
<a class="extern" href="http://remysharp.com/2007/09/18/auto-populate-multiple-select-boxes/" target="_blank">Auto-populate multiple select boxes</a><br />
<a class="extern" href="http://www.sitespotting.it/esempi/002/" target="_blank">Choose Plugin (Select Replacement)</a></p>
<h3>Form Basics, Input Fields, Checkboxes etc.</h3>
<p sizset="47" sizcache="2"><a class="extern" href="http://www.malsup.com/jquery/form/" target="_blank">jQuery Form Plugin</a><br />
<a class="extern" href="http://code.handlino.com/wiki/jquery-form" target="_blank">jQuery-Form</a><br />
<a class="extern" href="http://envero.org/jlook/" target="_blank">jLook Nice Forms</a><br />
<a class="extern" href="http://www.whitespace-creative.com/jquery/jNice/" target="_blank">jNice</a><br />
<a class="extern" href="http://www.brainfault.com/2007/07/07/pin-plugin-reloaded/" target="_blank">Ping Plugin</a><br />
<a class="extern" href="http://grzegorz.frydrychowicz.net/jquery_toggleformtext/" target="_blank">Toggle Form Text</a><br />
<a class="extern" href="http://thoughts.kuzemchak.net/entry/toggleval-for-jquery/" target="_blank">ToggleVal</a><br />
<a class="extern" href="http://www.pengoworks.com/workshop/jquery/field.plugin.htm" target="_blank">jQuery Field Plugin</a><br />
<a class="extern" href="http://code.befruit.com/" target="_blank">jQuery Form&#8217;n Field plugin</a><br />
<a class="extern" href="http://www.texotela.co.uk/code/jquery/checkboxes/" target="_blank">jQuery Checkbox manipulation</a><br />
<a class="extern" href="http://www.alcoholwang.cn/jquery/jTaggingDemo.htm" target="_blank">jTagging</a><br />
<a class="extern" href="http://code.google.com/p/labelcheck/" target="_blank">jQuery labelcheck</a><br />
<a class="extern" href="http://scott.sauyet.com/thoughts/archives/2007/03/31/overlabel-with-jquery/" target="_blank">Overlabel</a><br />
<a class="extern" href="http://blog.amicoimmaginario.it/2007/08/28/jquery-plugin-3-state-radio-buttons/" target="_blank">3 state radio buttons</a><br />
<a class="extern" href="http://sanisoft-demo.com/jquery/plugins/shiftcheckbox/" target="_blank">ShiftCheckbox jQuery Plugin</a><br />
<a class="extern" href="http://digitalbush.com/projects/watermark-input-plugin" target="_blank">Watermark Input</a><br />
<a class="extern" href="http://kawika.org/jquery/checkbox/" target="_blank">jQuery Checkbox (checkboxes with imags)</a><br />
<a class="extern" href="http://www.softwareunity.com/sandbox/jqueryspinbtn/" target="_blank">jQuery SpinButton Control</a><br />
<a class="extern" href="http://www.phpletter.com/form_builder/demo.html" target="_blank">jQuery Ajax Form Builder</a><br />
<a class="extern" href="http://www.texotela.co.uk/code/jquery/focusfields/" target="_blank">jQuery Focus Fields</a><br />
<a class="extern" href="http://home.iprimus.com.au/kbwood/jquery/timeEntry.html" target="_blank">jQuery Time Entry</a></p>
<h3>Time, Date and Color Picker</h3>
<p sizset="68" sizcache="2"><a class="extern" href="http://marcgrabanski.com/code/ui-datepicker/" target="_blank">jQuery UI Datepicker</a><br />
<a class="extern" href="http://kelvinluck.com/assets/jquery/datePicker/" target="_blank">jQuery date picker plugin</a><br />
<a class="extern" href="http://code.google.com/p/jquery-timepicker/" target="_blank">jQuery Time Picker</a><br />
<a class="extern" href="http://www.texotela.co.uk/code/jquery/timepicker/" target="_blank">Time Picker</a><br />
<a class="extern" href="http://www.oakcitygraphics.com/jquery/clockpick/ClockPick.cfm" target="_blank">ClickPick</a><br />
<a class="extern" href="http://labs.perifer.se/timedatepicker/" target="_blank">TimePicker</a><br />
<a class="extern" href="http://acko.net/dev/farbtastic" target="_blank">Farbtastic jQuery Color Picker Plugin</a><br />
<a class="extern" href="http://www.intelliance.fr/jquery/color_picker/" target="_blank">Color Picker by intelliance.fr</a></p>
<h3>Rating Plugins</h3>
<p sizset="76" sizcache="2"><a class="extern" href="http://www.phpletter.com/Demo/Jquery-Star-Rating-Plugin/" target="_blank">jQuery Star Rating Plugin</a><br />
<a class="extern" href="http://www.m3nt0r.de/devel/raterDemo/" target="_blank">jQuery Star Rater</a><br />
<a class="extern" href="http://riderdesign.com/articles/displayarticle.aspx?articleid=21" target="_blank">Content rater with asp.net, ajax and jQuery</a><br />
<a class="extern" href="http://www.learningjquery.com/2007/05/half-star-rating-plugin" target="_blank">Half-Star Rating Plugin</a></p>
<h3>Search Plugins</h3>
<p sizset="80" sizcache="2"><a class="extern" href="http://www.cineasalyha.net/autocomplete/" target="_blank">Autocomplete Box</a><br />
<a class="extern" href="http://www.vulgarisoip.com/2007/08/06/jquerysuggest-11/" target="_blank">jQuery Suggest</a><br />
<a class="extern" href="http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/" target="_blank">jQuery Autocomplete</a><br />
<a class="extern" href="http://www.pengoworks.com/workshop/jquery/autocomplete.htm" target="_blank">jQuery Autocomplete Mod</a><br />
<a class="extern" href="http://www.ajaxdaddy.com/demo-jquery-autocomplete.html" target="_blank">jQuery Autocomplete by AjaxDaddy</a><br />
<a class="extern" href="http://dev.reach1to1.net/saurabh/jplugins/autocomplete/" target="_blank">jQuery Autocomplete Plugin with HTML formatting</a><br />
<a class="extern" href="http://interface.eyecon.ro/docs/autocomplete" target="_blank">jQuery Autocompleter</a><br />
<a class="extern" href="http://nodstrum.com/2007/09/19/autocompleter/" target="_blank">AutoCompleter (Tutorial with PHP&amp;MySQL)</a><br />
<a class="extern" href="http://rikrikrik.com/jquery/quicksearch/" target="_blank">quick Search jQuery Plugin</a></p>
<h3>Inline Edit &amp; Editors</h3>
<p sizset="89" sizcache="2"><a class="extern" href="http://www.jaysalvat.com/jquery/jtageditor/" target="_blank">jTagEditor</a><br />
<a class="extern" href="http://demo.wymeditor.org/demo.html" target="_blank">WYMeditor</a><br />
<a class="extern" href="http://garage.pimentech.net/scripts_doc_jquery_jframe/" target="_blank">jQuery jFrame</a><br />
<a class="extern" href="http://www.appelsiini.net/projects/jeditable" target="_blank">Jeditable - edit in place plugin for jQuery</a><br />
<a class="extern" href="http://www.dyve.net/jquery/?editable" target="_blank">jQuery editable</a><br />
<a class="extern" href="http://www.jdempster.com/category/jquery/disableTextSelect/" target="_blank">jQuery Disable Text Select Plugin</a><br />
<a class="extern" href="http://15daysofjquery.com/edit-in-place-with-ajax-using-jquery-javascript-library/15/" target="_blank">Edit in Place with Ajax using jQuery</a><br />
<a class="extern" href="http://davehauenstein.com/blog/archives/28" target="_blank">jQuery Plugin - Another In-Place Editor</a><br />
<a class="extern" href="http://dev.iceburg.net/jquery/tableEditor/demo.php" target="_blank">TableEditor</a><br />
<a class="extern" href="http://joshhundley.com/teditable-in-place-editing-for-tables/" target="_blank">tEditable - in place table editing for jQuery</a></p>
<h3>Audio, Video, Flash, SVG, etc</h3>
<p sizset="99" sizcache="2"><a class="extern" href="http://www.contentwithstructure.com/extras/jmedia" target="_blank">jMedia - accessible multi-media embedding</a><br />
<a class="extern" href="http://sourceforge.net/projects/jbedit/" target="_blank">JBEdit - Ajax online Video Editor</a><br />
<a class="extern" href="http://www.sean-o.com/jquery/jmp3/" target="_blank">jQuery MP3 Plugin</a><br />
<a class="extern" href="http://malsup.com/jquery/media/" target="_blank">jQuery Media Plugin</a><br />
<a class="extern" href="http://jquery.lukelutman.com/plugins/flash/index.html" target="_blank">jQuery Flash Plugin</a><br />
<a class="extern" href="http://www.solitude.dk/archives/embedquicktime/" target="_blank">Embed QuickTime</a><br />
<a class="extern" href="http://keith-wood.name/svg.html" target="_blank">SVG Integration</a><br />
<a class="extern" href="http://www.openstudio.fr/jQuery-Multimedia-Portfolio.html" target="_blank">jQuery Multimedia Portfolio</a><br />
<a class="extern" href="http://bijon.rightbrainsolution.com/youtube/" target="_blank">jQuery YouTube Plugin</a></p>
<h3>Photos/Images/Galleries</h3>
<p sizset="108" sizcache="2"><a class="extern" href="http://jquery.com/demo/thickbox/" target="_blank">ThickBox</a><br />
<a class="extern" href="http://leandrovieira.com/projects/jquery/lightbox/" target="_blank">jQuery lightBox plugin</a><br />
<a class="extern" title="Fancy Box" href="http://fancy.klade.lv/" target="_blank">jQuery FancyBox</a><br />
<a class="extern" href="http://www.openstudio.fr/jQuery-Multimedia-Portfolio.html" target="_blank">jQuery Multimedia Portfolio</a><br />
<a class="extern" href="http://blog.joshuaeichorn.com/archives/2007/01/11/jquery-image-strip/" target="_blank">jQuery Image Strip</a><br />
<a class="extern" href="http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html" target="_blank">jQuery slideViewer</a><br />
<a class="extern" href="http://benjaminsterling.com/2007/09/09/jquery-jqgalscroll-photo-gallery/" target="_blank">jQuery jqGalScroll 2.0</a><br />
<a class="extern" href="http://benjaminsterling.com/2007/10/02/jquery-jqgalviewii-photo-gallery/" target="_blank">jQuery - jqGalViewII</a><br />
<a class="extern" href="http://benjaminsterling.com/2007/10/21/jqgalviewiii-proof-of-concept/" target="_blank">jQuery - jqGalViewIII</a><br />
<a class="extern" href="http://opiefoto.com/articles/photoslider" target="_blank">jQuery Photo Slider</a><br />
<a class="extern" href="http://joanpiedra.com/jquery/thumbs/" target="_blank">jQuery Thumbs - easily create thumbnails</a><br />
<a class="extern" href="http://www.texotela.co.uk/code/jquery/jQIR/" target="_blank">jQuery jQIR Image Replacement</a><br />
<a class="extern" href="http://www.gmarwaha.com/jquery/jcarousellite/index.php#what" target="_blank">jCarousel Lite</a><br />
<a class="extern" href="http://projects.sevir.org/storage/jpanview/index.html" target="_blank">jQPanView</a><br />
<a class="extern" href="http://sorgalla.com/projects/jcarousel/#Examples" target="_blank">jCarousel</a><br />
<a class="extern" href="http://www.intelliance.fr/jquery/imagebox/" target="_blank">Interface Imagebox</a><br />
<a class="extern" href="http://www.getintothis.com/blog/2006/10/12/image-gallery-using-jquery-interface-reflections/" target="_blank">Image Gallery using jQuery, Interface &amp; Reflactions</a><br />
<a class="extern" href="http://realazy.org/lab/jquery/j-gallery/" target="_blank">simple jQuery Gallery</a><br />
<a class="extern" href="http://chicagosocial.com/gallery/" target="_blank">jQuery Gallery Module</a><br />
<a class="extern" href="http://www.eogallery.com/" target="_blank">EO Gallery</a><br />
<a class="extern" href="http://flesler.blogspot.com/search/label/jQuery.ScrollShow" target="_blank">jQuery ScrollShow</a><br />
<a class="extern" href="http://www.malsup.com/jquery/cycle/" target="_blank">jQuery Cycle Plugin</a><br />
<a class="extern" href="http://www.projectatomic.com/en/flickr.htm" target="_blank">jQuery Flickr</a><br />
<a class="extern" href="http://www.appelsiini.net/2007/9/lazy-load-images-jquery-plugin" target="_blank">jQuery Lazy Load Images Plugin</a><br />
<a class="extern" href="http://www.sunsean.com/zoomi/" target="_blank">Zoomi - Zoomable Thumbnails</a><br />
<a class="extern" href="http://remysharp.com/2007/03/19/a-few-more-jquery-plugins-crop-labelover-and-pluck/#crop" target="_blank">jQuery Crop - crop any image on the fly</a><br />
<a class="extern" href="http://jquery.com/plugins/project/reflection" target="_blank">Image Reflection</a></p>
<h3>Google Map</h3>
<p sizset="135" sizcache="2"><a class="extern" href="http://www.dyve.net/jquery/?googlemaps" target="_blank">jQuery Plugin googlemaps</a><br />
<a class="extern" href="http://code.google.com/p/jmaps/" target="_blank">jMaps jQuery Maps Framework</a><br />
<a class="extern" href="http://projects.sevir.org/storage/jqmaps/index.html" target="_blank">jQmaps</a><br />
<a class="extern" href="http://olbertz.de/jquery/googlemap.html" target="_blank">jQuery &amp; Google Maps</a><br />
<a class="extern" href="http://snippets.dzone.com/posts/show/4361" target="_blank">jQuery Maps Interface forr Google and Yahoo maps</a><br />
<a class="extern" href="http://webrocket.ulmb.com/jmaps/" target="_blank">jQuery J Maps - by Tane Piper</a></p>
<h3>Games</h3>
<p sizset="141" sizcache="2"><a class="extern" href="http://fmarcia.info/jquery/tetris/tetris.html" target="_blank">Tetris with jQuery</a><br />
<a class="extern" href="http://64squar.es/" target="_blank">jQuery Chess</a><br />
<a class="extern" href="http://www.bennadel.com/blog/623-jQuery-Demo-Mad-Libs-Word-Game.htm" target="_blank">Mad Libs Word Game</a><br />
<a class="extern" href="http://www.alexatnet.com/node/68" target="_blank">jQuery Puzzle</a><br />
<a class="extern" href="http://www.willjessup.com/sandbox/jquery/solar_system/rotator.html" target="_blank">jQuery Solar System (not a game but awesome jQuery Stuff)</a><br />
<a class="extern" href="http://fernando.com.ar/memo/" target="_blank">jQuery Memory</a></p>
<h3>Tables, Grids etc.</h3>
<p sizset="147" sizcache="2"><a class="extern" href="http://docs.jquery.com/Plugins/Tablesorter" target="_blank">UI/Tablesorter</a><br />
<a class="extern" href="http://www.reconstrukt.com/ingrid/" target="_blank">jQuery ingrid</a><br />
<a class="extern" href="http://www.trirand.com/blog/?p=13" target="_blank">jQuery Grid Plugin</a><br />
<a class="extern" href="http://ideamill.synaptrixgroup.com/jquery/tablefilter/tabletest.htm" target="_blank">Table Filter - awesome!</a><br />
<a class="extern" href="http://dev.iceburg.net/jquery/tableEditor/demo.php" target="_blank">TableEditor</a><br />
<a class="extern" href="http://www.hanpau.com/jquery/unobtrusivetreetable.php" target="_blank">jQuery Tree Tables</a><br />
<a class="extern" href="http://www.javascripttoolbox.com/jquery/#expandablerows" target="_blank">Expandable &#8220;Detail&#8221; Table Rows</a><br />
<a class="extern" href="http://www.remotesynthesis.com/blog/index.cfm/2007/9/25/Sortable-Table-ColdFusion-Custom-Tag-with-jQueryUI" target="_blank">Sortable Table ColdFusion Costum Tag with jQuery UI</a><br />
<a class="extern" href="http://flesler.blogspot.com/2007/10/jquerybubble.html" target="_blank">jQuery Bubble</a><br />
<a class="extern" href="http://tablesorter.com/docs/" target="_blank">TableSorter</a><br />
<a class="extern" href="http://www.webtoolkit.info/demo/jquery/scrollable/demo.html" target="_blank">Scrollable HTML Table</a><br />
<a class="extern" href="http://p.sohei.org/stuff/jquery/columnmanager/demo/demo.html" target="_blank">jQuery column Manager Plugin</a><br />
<a class="extern" href="http://p.sohei.org/stuff/jquery/tablehover/demo/demo.html" target="_blank">jQuery tableHover Plugin</a><br />
<a class="extern" href="http://p.sohei.org/stuff/jquery/columnhover/demo/demo.html" target="_blank">jQuery columnHover Plugin</a><br />
<a class="extern" href="http://makoomba.altervista.org/grid/" target="_blank">jQuery Grid</a><br />
<a class="extern" href="http://motherrussia.polyester.se/jquery-plugins/tablesorter/" target="_blank">TableSorter plugin for jQuery</a><br />
<a class="extern" href="http://joshhundley.com/teditable-in-place-editing-for-tables/" target="_blank">tEditable - in place table editing for jQuery</a><br />
<a class="extern" href="http://www.hovinne.com/dev/jquery/chartotable/" target="_blank">jQuery charToTable Plugin</a><br />
<a class="extern" href="http://www.ita.es/jquery/jquery.grid.columnSizing.htm" target="_blank">jQuery Grid Column Sizing</a><br />
<a class="extern" href="http://www.ita.es/jquery/jquery.grid.rowSizing.htm" target="_blank">jQuery Grid Row Sizing</a></p>
<h3>Charts, Presentation etc.</h3>
<p sizset="167" sizcache="2"><a class="extern" href="http://code.google.com/p/flot/" target="_blank">Flot</a><br />
<a class="extern" href="http://worcesterwideweb.com/2007/06/04/jquery-wizard-plugin/" target="_blank">jQuery Wizard Plugin </a><br />
<a class="extern" href="http://www.reach1to1.com/sandbox/jquery/jqchart/" target="_blank">jQuery Chart Plugin</a><br />
<a class="extern" href="http://ejohn.org/apps/speed/" target="_blank">Bar Chart</a><br />
<a class="extern" href="http://www.filamentgroup.com/lab/creating_accessible_charts_using_canvas_and_jquery/" target="_blank">Accessible Charts using Canvas and jQuery</a></p>
<h3>Border, Corners, Background</h3>
<p sizset="172" sizcache="2"><a class="extern" href="http://www.malsup.com/jquery/corner/" target="_blank">jQuery Corner</a><br />
<a class="extern" href="http://blue-anvil.com/archives/anti-aliased-rounded-corners-with-jquery" target="_blank">jQuery Curvy Corner</a><br />
<a class="extern" href="http://dev.jquery.com/~paul/plugins/nifty/example.html" target="_blank">Nifty jQuery Corner</a><br />
<a class="extern" href="http://illandril.net/jQuery/transparentCorners/" target="_blank">Transparent Corners</a><br />
<a class="extern" href="http://www.methvin.com/jquery/jq-corner.html" target="_blank">jQuery Corner Gallery</a><br />
<a class="extern" href="http://blog.brandonaaron.net/my-jquery-plugins/gradient/" target="_blank">Gradient Plugin</a></p>
<h3>Text and Links</h3>
<p sizset="178" sizcache="2"><a class="extern" href="http://wanderinghorse.net/computing/javascript/jquery/spoilers/demo.html" target="_blank">jQuery Spoiler plugin</a><br />
<a class="extern" href="http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html" target="_blank">Text Highlighting</a><br />
<a class="extern" href="http://www.jdempster.com/category/jquery/disableTextSelect/" target="_blank">Disable Text Select Plugin</a><br />
<a class="extern" href="http://www.texotela.co.uk/code/jquery/newsticker/" target="_blank">jQuery Newsticker</a><br />
<a class="extern" href="http://www.ollicle.com/2007/jun/03/jquery_lineheight_flexible.html" target="_blank">Auto line-height Plugin</a><br />
<a class="extern" href="http://agencenp.net/textgrad/textgrad.html" target="_blank">Textgrad - a text gradient plugin</a><br />
<a class="extern" href="http://kawika.org/jquery/linklook/" target="_blank">LinkLook - a link thumbnail preview</a><br />
<a class="extern" href="http://rikrikrik.com/jquery/pager/#examples" target="_blank">pager jQuery Plugin</a><br />
<a class="extern" href="http://rikrikrik.com/jquery/shortkeys/" target="_blank">shortKeys jQuery Plugin</a><br />
<a class="extern" href="http://www.ollicle.com/eg/jquery/biggerlink" target="_blank">jQuery Biggerlink</a><br />
<a class="extern" href="http://troy.dyle.net/linkchecker/" target="_blank">jQuery Ajax Link Checker</a><br />
<a class="extern" href="http://noteslog.com/chili/" target="_blank">Chili jQuery code highlighter plugin</a><br />
<a class="extern" href="http://jscroller.markusbordihn.de/example/left/" target="_blank">jScroller</a></p>
<h3>Tooltips</h3>
<p sizset="191" sizcache="2"><a class="extern" href="http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/" target="_blank">jQuery Plugin - Tooltip</a><br />
<a class="extern" href="http://www.codylindley.com/blogstuff/js/jtip/" target="_blank">jTip - The jQuery Tool Tip</a><br />
<a class="extern" href="http://examples.learningjquery.com/62/demo/index.html#examplesection" target="_blank">clueTip</a><br />
<a class="extern" href="http://edgarverle.com/BetterTip/default.cfm" target="_blank">BetterTip</a><br />
<a class="extern" href="http://ioreader.com/2007/05/15/flash-tooltips-using-jquery/" target="_blank">Flash Tooltips using jQuery</a><br />
<a class="extern" href="http://www.texotela.co.uk/code/jquery/tooltipdemo/" target="_blank">ToolTip</a></p>
<h3>Menus, Navigations</h3>
<p sizset="197" sizcache="2"><a class="extern" href="http://stilbuero.de/jquery/tabs_3/" target="_blank">jQuery Tabs Plugin - awesome! </a>[<a class="extern" href="http://stilbuero.de/jquery/tabs_3/nested.html" target="_blank">demo nested tabs</a>]<br />
<a class="extern" href="http://blog.cutterscrossing.com/index.cfm/2007/6/15/Updated-JQuery-Nested-Tab-Set-with-Demo" target="_blank">another jQuery nested Tab Set example (based on jQuery Tabs Plugin)</a><br />
<a class="extern" href="http://www.sunsean.com/idTabs/" target="_blank">jQuery idTabs</a><br />
<a class="extern" href="http://jdsharp.us/jQuery/plugins/jdMenu/" target="_blank">jdMenu - Hierarchical Menu Plugin for jQuery</a><br />
<a class="extern" href="http://be.twixt.us/jquery/suckerFish.php" target="_blank">jQuery SuckerFish Style</a><br />
<a class="extern" href="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/" target="_blank">jQuery Plugin Treeview</a><br />
<a class="extern" href="http://be.twixt.us/jquery/treeView.php" target="_blank">treeView Basic</a><br />
<a class="extern" href="http://labs.activespotlight.net/jQuery/menu_demo.html" target="_blank">FastFind Menu</a><br />
<a class="extern" href="http://www.getintothis.com/blog/2006/09/26/my-first-jquery-plugin-a-sliding-menu/" target="_blank">Sliding Menu</a><br />
<a class="extern" href="http://gmarwaha.com/blog/?p=7" target="_blank">Lava Lamp jQuery Menu</a><br />
<a class="extern" href="http://icon.cat/wiki/IconDock_En#iconDock_jQuery_Plugin" target="_blank">jQuery iconDock</a><br />
<a class="extern" href="http://cherne.net/brian/resources/jquery.variations.html" target="_blank">jVariations Control Panel</a><br />
<a class="extern" href="http://www.trendskitchens.co.nz/jquery/contextmenu/" target="_blank">ContextMenu plugin</a><br />
<a class="extern" href="http://p.sohei.org/jquery-plugins/clickmenu/" target="_blank">clickMenu</a><br />
<a class="extern" href="http://www.ndesign-studio.com/blog/mac/css-dock-menu" target="_blank">CSS Dock Menu</a><br />
<a class="extern" href="http://webexpose.org/2006/12/28/jquery-pop-up-menu-tutorial/" target="_blank">jQuery Pop-up Menu Tutorial</a><br />
<a class="extern" href="http://www.getintothis.com/blog/2006/09/26/my-first-jquery-plugin-a-sliding-menu/" target="_blank">Sliding Menu</a></p>
<h3>Accordions, Slide and Toggle stuff</h3>
<p sizset="215" sizcache="2"><a class="extern" href="http://bassistance.de/jquery-plugins/jquery-plugin-accordion/" target="_blank">jQuery Plugin Accordion</a><br />
<a class="extern" href="http://fmarcia.info/jquery/accordion.html" target="_blank">jQuery Accordion Plugin Horizontal Way</a><br />
<a class="extern" href="http://letmehaveblog.blogspot.com/2007/10/haccordion-simple-horizontal-accordion.html" target="_blank">haccordion - a simple horizontal accordion plugin for jQuery</a><br />
<a class="extern" href="http://dev.portalzine.de/index?/Horizontal_Accordion--print" target="_blank">Horizontal Accordion by portalzine.de</a><br />
<a class="extern" href="http://berndmatzner.de/jquery/hoveraccordion/" target="_blank">HoverAccordion</a><br />
<a class="extern" href="http://fmarcia.info/jquery/accordion.html" target="_blank">Accordion Example from fmarcia.info</a><br />
<a class="extern" href="http://blog.evaria.com/wp-content/themes/blogvaria/jquery/index.php" target="_blank">jQuery Accordion Example</a><br />
<a class="extern" href="http://jquery.com/files/demo/dl-done.html" target="_blank">jQuery Demo - Expandable Sidebar Menu</a><br />
<a class="extern" href="http://www.andreacfm.com/examples/jQpanels/" target="_blank">Sliding Panels for jQuery</a><br />
<a class="extern" href="http://jquery.andreaseberhard.de/toggleElements/" target="_blank">jQuery ToggleElements</a><br />
<a class="extern" href="http://www.ndoherty.com/demos/coda-slider/" target="_blank">Coda Slider</a><br />
<a class="extern" href="http://sorgalla.com/projects/jcarousel/#Examples" target="_blank">jCarousel</a><br />
<a class="extern" href="http://www.reindel.com/accessible_news_slider/" target="_blank">Accesible News Slider Plugin</a><br />
<a class="extern" href="http://icant.co.uk/sandbox/jquerycodeview/" target="_blank">Showing and Hiding code Examples</a><br />
<a class="extern" href="http://gsgd.co.uk/sandbox/jquery/easing/" target="_blank">jQuery Easing Plugin</a><br />
<a class="extern" href="http://sonspring.com/journal/jquery-portlets" target="_blank">jQuery Portlets</a><br />
<a class="extern" href="http://jdsharp.us/jQuery/plugins/AutoScroll/" target="_blank">AutoScroll</a><br />
<a class="extern" href="http://medienfreunde.com/lab/innerfade/" target="_blank">Innerfade</a><br />
<a class="extern" href="http://maxb.net/blog/2008/05/11/ycodaslider-20/" target="_blank">CodaSlider</a></p>
<h3>Drag and Drop</h3>
<p sizset="234" sizcache="2"><a class="extern" href="http://docs.jquery.com/UI/Draggables" target="_blank">UI/Draggables</a><br />
<a class="extern" href="http://fromvega.com/wordpress/2007/07/14/easydrag-jquery-plugin/" target="_blank">EasyDrag jQuery Plugin</a><br />
<a class="extern" href="http://sonspring.com/journal/jquery-portlets" target="_blank">jQuery Portlets</a><br />
<a class="extern" href="http://dev.iceburg.net/jquery/jqDnR/" target="_blank">jqDnR - drag, drop resize</a><br />
<a class="extern" href="http://interface.eyecon.ro/demos/drag.html" target="_blank">Drag Demos</a></p>
<h3>XML XSL JSON Feeds</h3>
<p sizset="239" sizcache="2"><a class="extern" href="http://www.jongma.org/webtools/jquery/xslt/" target="_blank">XSLT Plugin</a><br />
<a class="extern" href="http://cgaskell.wordpress.com/2006/11/02/jquery-ajax-call-and-result-xml-parsing/" target="_blank">jQuery Ajax call and result XML parsing</a><br />
<a class="extern" href="http://jquery.com/plugins/project/xmlObjectifier" target="_blank">xmlObjectifier - Converts XML DOM to JSON</a><br />
<a class="extern" href="http://jquery.glyphix.com/" target="_blank">jQuery XSL Transform</a><br />
<a class="extern" href="http://malsup.com/jquery/taconite/" target="_blank">jQuery Taconite - multiple Dom updates</a><br />
<a class="extern" href="http://www.hovinne.com/blog/index.php/2007/07/15/132-jfeed-jquery-rss-atom-feed-parser-plugin" target="_blank">RSS/ATOM Feed Parser Plugin</a><br />
<a class="extern" href="http://www.malsup.com/jquery/gfeed/" target="_blank">jQuery Google Feed Plugin</a></p>
<h3>Browserstuff</h3>
<p sizset="246" sizcache="2"><a class="extern" href="http://noteslog.com/post/how-to-fix-the-resize-event-in-ie/" target="_blank">Wresize - IE Resize event Fix Plugin</a><br />
<a class="extern" href="http://jquery.khurshid.com/ifixpng.php" target="_blank">jQuery ifixpng</a><br />
<a class="extern" href="http://jquery.andreaseberhard.de/pngFix/" target="_blank">jQuery pngFix</a><br />
<a class="extern" href="http://www.crismancich.de/jquery/plugins/linkscrubber/" target="_blank">Link Scrubber - removes the dotted line onfocus from links</a><br />
<a class="extern" href="http://www.matthewjrichards.co.uk/articles/2007/06/25/jquery-perciformes-the-entire-suckerfish-familly-under-one-roof" target="_blank">jQuery Perciformes - the entire suckerfish familly under one roof</a><br />
<a class="extern" href="http://blog.brandonaaron.net/my-jquery-plugins/background-iframe/" target="_blank">Background Iframe</a><br />
<a class="extern" href="http://jquery.com/plugins/project/QinIE" target="_blank">QinIE - for proper display of Q tags in IE</a><br />
<a class="extern" href="http://webrocket.ulmb.com/ability/" target="_blank">jQuery Accessibility Plugin</a><br />
<a class="extern" href="http://www.ogonek.net/mousewheel/jquery-demo.html" target="_blank">jQuery MouseWheel Plugin</a></p>
<h3>Alert, Prompt, Confirm Windows</h3>
<p sizset="255" sizcache="2"><a class="extern" href="http://trentrichardson.com/Impromptu/" target="_blank">jQuery Impromptu</a><br />
<a class="extern" href="http://nadiaspot.com/jquery/confirm" target="_blank">jQuery Confirm Plugin</a><br />
<a class="extern" href="http://dev.iceburg.net/jquery/jqModal/" target="_blank">jqModal</a><br />
<a class="extern" href="http://www.ericmmartin.com/projects/simplemodal/" target="_blank">SimpleModal</a></p>
<h3>CSS</h3>
<p sizset="259" sizcache="2"><a class="extern" href="http://www.kelvinluck.com/article/switch-stylesheets-with-jquery" target="_blank">jQuery Style Switcher</a><br />
<a class="extern" href="http://andykent.bingodisk.com/bingo/public/jss/" target="_blank">JSS - Javascript StyleSheets</a><br />
<a class="extern" href="http://flesler.blogspot.com/2007/11/jqueryrule.html" target="_blank">jQuery Rule - creation/manipulation of CSS Rules</a><br />
<a class="extern" href="http://www.designerkamal.com/jPrintArea/" target="_blank">jPrintArea</a></p>
<h3>DOM, Ajax and other jQuery plugins</h3>
<p sizset="263" sizcache="2"><a class="extern" href="http://flydom.socianet.com/" target="_blank">FlyDOM</a><br />
<a class="extern" href="http://brandonaaron.net/docs/dimensions/#getting-started" target="_blank">jQuery Dimenion Plugin</a><br />
<a class="extern" href="http://happygiraffe.net/blog/articles/2007/09/26/jquery-logging" target="_blank">jQuery Loggin</a><br />
<a class="extern" href="http://jquery.com/plugins/project/metadata" target="_blank">Metadata - extract metadata from classes, attributes, elements</a><br />
<a class="extern" href="http://johannburkard.de/blog/programming/javascript/inc-a-super-tiny-client-side-include-javascript-jquery-plugin.html" target="_blank">Super-tiny Client-Side Include Javascript jQuery Plugin</a><br />
<a class="extern" href="http://humanized.com/weblog/2007/09/14/undo-made-easy-with-ajax-part-1/" target="_blank">Undo Made Easy with Ajax</a><br />
<a class="extern" href="http://www.jasons-toolbox.com/JHeartbeat/" target="_blank">JHeartbeat - periodically poll the server</a><br />
<a class="extern" href="http://www.appelsiini.net/projects/lazyload" target="_blank">Lazy Load Plugin</a><br />
<a class="extern" href="http://blog.brandonaaron.net/2007/08/19/new-plugin-live-query/" target="_blank">Live Query</a><br />
<a class="extern" href="http://jquery.offput.ca/every/" target="_blank">jQuery Timers</a><br />
<a class="extern" href="http://www.joanpiedra.com/jquery/shareit/" target="_blank">jQuery Share it - display social bookmarking icons</a><br />
<a class="extern" href="http://www.jdempster.com/category/code/jquery/cookiejar/" target="_blank">jQuery serverCookieJar</a><br />
<a class="extern" href="http://ideamill.synaptrixgroup.com/?p=3" target="_blank">jQuery autoSave</a><br />
<a class="extern" href="http://www.semicomplete.com/blog/geekery/jquery-interface-puffer.html" target="_blank">jQuery Puffer</a><br />
<a class="extern" href="http://33rockers.com/jquery/iframe-demo/" target="_blank">jQuery iFrame Plugin</a><br />
<a class="extern" href="http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/" target="_blank">Cookie Plugin for jQuery</a><br />
<a class="extern" href="http://leftlogic.com/lounge/articles/jquery_spy2" target="_blank">jQuery Spy - awesome plugin</a><br />
<a class="extern" href="http://www.learningjquery.com/2007/01/effect-delay-trick" target="_blank">Effect Delay Trick</a><br />
<a class="extern" href="http://jquick.sullof.com/jquick/" target="_blank">jQuick - a quick tag creator for jQuery</a><a class="extern" href="http://noteslog.com/post/metaobjects-11-released-today/" target="_blank"><br />
Metaobjects</a><br />
<a class="extern" href="http://www.thunderguy.com/semicolon/2007/08/14/elementready-jquery-plugin/" target="_blank">elementReady</a><br />
</p>
</h2>
<p style="font-size: 10pt">原文地址: <a title="http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/" href="http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/"><font color="#000080">http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/</font></a></p><img src ="http://www.blogjava.net/rain1102/aggbug/254451.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-02-12 21:39 <a href="http://www.blogjava.net/rain1102/archive/2009/02/12/254451.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Lightbox JS v2.0</title><link>http://www.blogjava.net/rain1102/archive/2008/09/01/226177.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 01 Sep 2008 12:17:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/09/01/226177.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/226177.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/09/01/226177.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/226177.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/226177.html</trackback:ping><description><![CDATA[<p><strong>概要：</strong></p>
<p>Lightbox JS 是一个简单而又谦恭的用来把图片覆盖在当前页面上的脚本. 它能被快速安装并且运作于所有流行的浏览器.</p>
<p><strong>最新更新 Version 2.0</strong></p>
<ul>
    <li>图片集: 分组相关的图片并且能轻松的导航它们
    <li>视觉特效: 奇特的自适应调整
    <li>向后兼容: yes! </li>
</ul>
<p><a href="http://www.blueidea.com/articleimg/2006/08/3904/lightbox.html" target="_blank"><strong>点击这里查看实例演示</strong></a></p>
<p><strong>如何使用:</strong></p>
<p>步骤 1 - 安装 </p>
<p>1、Lightbox v2.0 使用 Prototype 框架和 Scriptaculous 效果库. 你将需要外调这三个 Javascript 文件在你的 header.&nbsp;<br />
<span class="code">&lt;script type="text/javascript" src="js/prototype.js"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript" src="js/scriptaculous.js?load=effects"&gt;&lt;/script&gt;<br />
&lt;script type="text/javascript" src="js/lightbox.js"&gt;&lt;/script&gt;</span> </p>
<p>2、外调 Lightbox CSS 文件 (或添加 Lightbox 样式到你现行的样式表中).&nbsp;<br />
<span class="code">&lt;link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" /&gt;</span> </p>
<p>3、检查 CSS 并确定调用的 prev.gif 和 next.gif 文件在正确的位置. 同样要确定调用的 loading.gif 和 close.gif 文件及 lightbox.js 文件在正确的位置. </p>
<p>步骤 2 - 激活</p>
<p>1、添加 rel="lightbox" 属性到任何一个链接标签去激活lightbox. 例如: <br />
<span class="code">&lt;a href="images/image-1.jpg" rel="lightbox" title="my caption"&gt;image #1&lt;/a&gt;</span><em><br />
可选择项</em>: 使用 title 属性加上说明. </p>
<p>2、如果你有一套你想分组的相关图片, 接着上一部并且又在 rel 属性中添加一个带方括号的组名. 例如: <br />
<span class="code">&lt;a href="images/image-1.jpg" rel="lightbox[roadtrip]"&gt;image #1&lt;/a&gt;<br />
&lt;a href="images/image-2.jpg" rel="lightbox[roadtrip]"&gt;image #2&lt;/a&gt;<br />
&lt;a href="images/image-3.jpg" rel="lightbox[roadtrip]"&gt;image #3&lt;/a&gt;</span></p>
<p>3、没有限定每个页面的图片组数量和每个图片组图片的数量. 疯了！ </p>
<p><strong>下载: <strong><a href="http://www.lokeshdhakar.com/projects/lightbox2/releases/lightbox2.04.zip" target="_blank"><strong>Lightbox <em><small>v2.04</small></em></strong> </a></strong></strong></p><img src ="http://www.blogjava.net/rain1102/aggbug/226177.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-09-01 20:17 <a href="http://www.blogjava.net/rain1102/archive/2008/09/01/226177.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为jmesa表格的date类型数据加filter</title><link>http://www.blogjava.net/rain1102/archive/2008/06/20/209456.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 20 Jun 2008 06:59:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/06/20/209456.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/209456.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/06/20/209456.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/209456.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/209456.html</trackback:ping><description><![CDATA[<pre class="prettyprint"><span class="pun">&lt;</span><span class="tag">jmesa</span><span class="pln">:</span><span class="atn">htmlColumn</span><span class="pln"> <br />
</span><span class="atn">&nbsp;&nbsp;&nbsp;&nbsp;property</span><span class="pun">=</span><span class="atv">"born"<br />
</span><span class="pln"> &nbsp;&nbsp;&nbsp;</span><span class="atn">pattern</span><span class="pun">=</span><span class="atv">"MM/yyyy"</span><span class="pln"> <br />
</span><span class="atn">&nbsp;&nbsp;&nbsp;&nbsp;cellEditor</span><span class="pun">=</span><span class="atv">"org.jmesa.view.editor.DateCellEditor"</span><span class="pun">/&gt;</span></pre>
<br />
<p>package com.founder.web.ext;</p>
<p>import <a title="Java爱好者" href="http://www.blogjava.net/rain1102">Java</a>.util.Date;<br />
import <a title="Java爱好者" href="http://www.blogjava.net/rain1102">Java</a>.util.HashMap;<br />
import <a title="Java爱好者" href="http://www.blogjava.net/rain1102">Java</a>.util.Map;</p>
<p>import org.jmesa.core.filter.DateFilterMatcher;<br />
import org.jmesa.core.filter.FilterMatcher;<br />
import org.jmesa.core.filter.FilterMatcherMap;<br />
import org.jmesa.core.filter.MatcherKey;</p>
<p>public class DateFilterMatcherMap implements FilterMatcherMap {</p>
<p>&nbsp;public Map&lt;MatcherKey, FilterMatcher&gt; getFilterMatchers() {<br />
&nbsp;&nbsp;Map&lt;MatcherKey, FilterMatcher&gt; filterMatcherMap = new HashMap&lt;MatcherKey, FilterMatcher&gt;();<br />
&nbsp;&nbsp;filterMatcherMap.put(new MatcherKey(Date.class, "<span style="color: red">born</span>"), new DateFilterMatcher("MM/dd/yyyy"));<br />
&nbsp;&nbsp;return filterMatcherMap;<br />
&nbsp;}</p>
<p>}<br />
<br />
现在需要修改<span class="pln">tableFacade</span>标签为</p>
<pre class="prettyprint"><span class="pun">&lt;</span><span class="pln">jmesa</span><span class="pun">:</span><span class="pln">tableFacade<br />
&nbsp;&nbsp;&nbsp;&nbsp;id</span><span class="pun">=</span><span class="str">"tag"</span><span class="pln"> <br />
<span style="color: red"><span class="pln">&nbsp;&nbsp;&nbsp;&nbsp;filterMatcherMap</span><span class="pun">=</span><span class="str">"com.founder.web.ext.DateFilterMatcherMap"</span></span></span></pre><img src ="http://www.blogjava.net/rain1102/aggbug/209456.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-06-20 14:59 <a href="http://www.blogjava.net/rain1102/archive/2008/06/20/209456.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript类库 - Rico</title><link>http://www.blogjava.net/rain1102/archive/2008/05/13/200217.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 13 May 2008 07:28:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/05/13/200217.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/200217.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/05/13/200217.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/200217.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/200217.html</trackback:ping><description><![CDATA[<p>Apache License的，一个免费使用的东东。<br />
Rico (http://openrico.org/)是开源的JavaScript类库，用来创建丰富的internet应用。<br />
1、可以方便地制作很玄地圆角矩形。<br />
2、可以设置TAB面板<br />
3、支持DRAG&amp;DROP<br />
4、提供一个LiveGrid的数据表格，支持Title Sorting和Page splite<br />
5、提供一个Ajax引擎。<br />
6、提供一个色彩库，默认一些色彩。<br />
7、主页是<a href="http://openrico.org/rico/home.page">http://openrico.org/rico/home.page</a>。&nbsp;<br />
<br />
因为Rico是建立在Prototype类库之上的，所以你在使用Rico的时候必须对Prototype进行引用： <br />
&lt;script type="text/javascript" <br />
&nbsp;src="prototype.js"&gt; <br />
&lt;/script&gt; <br />
&lt;script type="text/javascript" <br />
&nbsp;src="rico.js"&gt; <br />
&lt;/script&gt;</p><img src ="http://www.blogjava.net/rain1102/aggbug/200217.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-05-13 15:28 <a href="http://www.blogjava.net/rain1102/archive/2008/05/13/200217.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jMaki</title><link>http://www.blogjava.net/rain1102/archive/2008/04/08/191499.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 08 Apr 2008 07:10:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/04/08/191499.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/191499.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/04/08/191499.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/191499.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/191499.html</trackback:ping><description><![CDATA[jMaki是SUN支持的一个AJAX框架。这个项目的是让Java开发人员在其基于Java的应用程序中(不管是JSP标签库还是JSF组件)都能使用AJAX技术。jMaki使用了Java与JavaScript中最优秀的部分以此来提供一些Rich AJAX style widgets。jMaki当前提供的bootstrap widget是来自<a href="http://dojotoolkit.org/">Dojo</a>,<a href="http://script.aculo.us/">Scriptaculus</a>,<a href="http://developer.yahoo.com/yui/">Yahoo UI Widgets</a>,<a href="http://labs.adobe.com/technologies/spry/">Spry</a>,<a href="http://www.dhtmlgoodies.com/">DHTML Goodies</a>,和<a href="http://www.google.com/">Google</a>等组件库。jMaki提供为这些widget组件库提供了一个公共接口以便让你可以在同一页面中一起使用这些组件库。如果你有兴趣利用jMaki项目来快速开发Web应用程序，可以使用NetBeans 5.5的jMaki插件。这个插件可以直接把jMaki组件拖放到JSP页面中。如果不熟悉该插件可以通过其网站提供一段<a href="https://ajax.dev.java.net/screencast/jMakiDemo.html">视频</a>来学习。<img src ="http://www.blogjava.net/rain1102/aggbug/191499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-04-08 15:10 <a href="http://www.blogjava.net/rain1102/archive/2008/04/08/191499.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajax jsp 无刷新上传文件</title><link>http://www.blogjava.net/rain1102/archive/2008/03/19/187170.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 19 Mar 2008 02:23:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/03/19/187170.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/187170.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/03/19/187170.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/187170.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/187170.html</trackback:ping><description><![CDATA[首先要说的就是 <span class="hilite1"><span class="hilite1">ajax</span></span> 是无法实现上传文件的，可以想一下<span class="hilite1"><span class="hilite1">ajax</span></span>与后台通信都是通过传递字符串，怎么能传递文件呢？其实出于安全考虑js是不能操作文件的，所以就不要再说用<span class="hilite1"><span class="hilite1">ajax</span></span>来实现文件的上传了，这是不可能的。<br />
&nbsp;&nbsp;&nbsp; 而本文实现的<span class="hilite2"><span class="hilite2">文件上传</span></span>也是无页面刷新的，可以说是一种"类似<span class="hilite1"><span class="hilite1">AJAX</span></span>"方法。<br />
&nbsp;&nbsp;&nbsp; 开始之前先说两句无关的，其实在<span class="hilite1"><span class="hilite1">ajax</span></span>出现之前，web应用也可以是无刷新的，那时大多通过IFrame来做到这一点。当然<span class="hilite1"><span class="hilite1">Ajax</span></span>出现之后，人们一窝蜂地投奔<span class="hilite1"><span class="hilite1">Ajax</span></span> 的阵营了，iFrame 就乏人问津了。但是用iFrame来实现无刷新上传文件确实一个很好的选择。ps：<span class="hilite1"><span class="hilite1">Ajax</span></span>技术基本上可以说是由google公司带起来的，但少Gmail中上传文件用的还是 IFrame，所以说使用IFrame来上传文件是最好的选择。<br />
&nbsp;&nbsp;&nbsp; 我在这里这里用的技术是jsp，其实asp，php等也是一样可以这么实现的<br />
&nbsp;&nbsp;&nbsp; 一共两个文件就可实现：index.html 和 upload.jsp<br />
--index.html<span>
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span>＜html＞ &nbsp;&nbsp;</span></span>
    <li class=""><span>＜body＞ &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>＜form&nbsp;action=</span><span class="string">"upload.jsp"</span><span>&nbsp;id=</span><span class="string">"form1"</span><span>&nbsp;name=</span><span class="string">"form1"</span><span>&nbsp;encType=</span><span class="string">"multipart/form-data"</span><span>&nbsp;&nbsp;method=</span><span class="string">"post"</span><span>&nbsp;target=</span><span class="string">"hidden_frame"</span><span>&nbsp;＞ &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;＜input&nbsp;type=</span><span class="string">"file"</span><span>&nbsp;id=</span><span class="string">"file"</span><span>&nbsp;name=</span><span class="string">"file"</span><span>&nbsp;style=</span><span class="string">"width:450"</span><span>＞ &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;＜INPUT&nbsp;type=</span><span class="string">"submit"</span><span>&nbsp;value=</span><span class="string">"上传文件"</span><span>＞＜span&nbsp;id=</span><span class="string">"msg"</span><span>＞＜/span＞ &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;＜br＞ &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;＜font&nbsp;color=</span><span class="string">"red"</span><span>＞支持JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI文件的上传＜/font＞&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;＜iframe&nbsp;name='hidden_frame'&nbsp;id=</span><span class="string">"hidden_frame"</span><span>&nbsp;style='display:none'＞＜/iframe＞ &nbsp;&nbsp;</span>
    <li class=""><span>＜/form＞ &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>＜/body＞ &nbsp;&nbsp;</span>
    <li class="alt"><span>＜/html＞ &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>＜script&nbsp;type=</span><span class="string">"text/javascript"</span><span>＞ &nbsp;&nbsp;</span>
    <li class=""><span>function&nbsp;callback(msg) &nbsp;&nbsp;</span>
    <li class="alt"><span>{ &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(</span><span class="string">"file"</span><span>).outerHTML&nbsp;=&nbsp;document.getElementById(</span><span class="string">"file"</span><span>).outerHTML; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(</span><span class="string">"msg"</span><span>).innerHTML&nbsp;=&nbsp;</span><span class="string">"＜font&nbsp;color=red＞"</span><span>+msg+</span><span class="string">"＜/font＞"</span><span>; &nbsp;&nbsp;</span>
    <li class=""><span>} &nbsp;&nbsp;</span>
    <li class="alt"><span>＜/script＞&nbsp;&nbsp;</span> </li>
</ol>
</div>
<br />
<br />
<font color="#000000">&nbsp;index.html 中主要要做的就是写一个 form 和 iframe ，并把 form 的 target 设为 iframe 的名字，注意要把 iframe 设为不可见，其他的都是正常的<span class="hilite2"><span class="hilite2">文件上传</span></span>的写法，这样刷新的页面就是这个隐藏的 Iframe ，而在 index.html 中是不会有页面刷新的，js的 callback 方法是回调方法。用于清空<span class="hilite2"><span class="hilite2">文件上传</span></span>框和显示后台信息，注意清空<span class="hilite2"><span class="hilite2">文件上传</span></span>框的方法，和普通方法有点不一样。</font><br />
<br />
--upload.jsp<br />
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span>＜%@&nbsp;page&nbsp;language=</span><span class="string">"<a title="Java爱好者" href="http://www.blogjava.net/rain1102" >Java</a>"</span><span>&nbsp;contentType=</span><span class="string">"text/html;&nbsp;charset=gb2312"</span><span>&nbsp;%＞ &nbsp;&nbsp;</span></span>
    <li class=""><span>＜%@&nbsp;page&nbsp;</span><span class="keyword">import</span><span>=</span><span class="string">"com.jspsmart.upload.SmartUpload"</span><span>%＞ &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>＜% &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//新建一个SmartUpload对象 </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;SmartUpload&nbsp;su&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;SmartUpload(); &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//上传初始化 </span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;su.initialize(pageContext); &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;设定上传限制 </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//1.限制每个上传文件的最大长度。 </span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;su.setMaxFileSize(</span><span class="number">10000000</span><span>); &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//2.限制总上传数据的长度。 </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;su.setTotalMaxFileSize(</span><span class="number">20000000</span><span>); &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//3.设定允许上传的文件（通过扩展名限制）,仅允许doc,txt文件。 </span><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;su.setAllowedFilesList(</span><span class="string">"doc,txt,jpg,rar,mid,waw,mp3,gif"</span><span>); &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">boolean</span><span>&nbsp;sign&nbsp;=&nbsp;</span><span class="keyword">true</span><span>; &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//4.设定禁止上传的文件（通过扩展名限制）,禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。 </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>&nbsp;{ &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;su.setDeniedFilesList(</span><span class="string">"exe,bat,jsp,htm,html"</span><span>); &nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//上传文件 </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;su.upload(); &nbsp;&nbsp;</span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//将上传文件保存到指定目录 </span><span>&nbsp;&nbsp;</span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;su.save(</span><span class="string">"c:\\"); </span>&nbsp;
    <li class="alt"><span>&nbsp;</span>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{ </span>&nbsp;</span>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); </span>&nbsp;</span>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sign&nbsp;=&nbsp;false; </span>&nbsp;</span>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;} </span>&nbsp;</span>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;if(sign==true) </span>&nbsp;</span>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;{ </span>&nbsp;</span>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println("</span><span>＜script＞parent.callback('upload&nbsp;file&nbsp;success')＜/script＞</span><span class="string">"); </span>&nbsp;</span>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;}else </span>&nbsp;</span>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;{ </span>&nbsp;</span>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println("</span><span>＜script＞parent.callback('upload&nbsp;file&nbsp;error')＜/script＞"); &nbsp;&nbsp;</span></span>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span>
    <li class="alt"><span>%＞ &nbsp;&nbsp;</span> </li>
</ol>
</div>
<br />
<br />
<br />
<br />
<font color="#000000">upload.jsp 中只要注意最后输出的格式就可以了。其实原理就是输出一段js代码到 iframe 中，然后在iframe中来控制它的父页面。<br />
<br />
&nbsp;&nbsp;&nbsp; OK，至此一个无刷新的页面上传组件就做好了，</font><font color="#800080"><font color="#000000">不要忘了在 WEB-INF/lib 下加上必须的 jspSmartUpload.jar 包</font></font><font color="#800080"><font color="#000000">。<br />
&nbsp;&nbsp;&nbsp; 需要说明的是使用Iframe来上传，状态栏还是会有刷新的，因为iframe 中的页面刷新了嘛，但是外部页面，就是你所看到的页面是没有刷新的，所以也可以说是类似<span class="hilite1"><span class="hilite1">Ajax</span></span>上传。</font></font></span><img src ="http://www.blogjava.net/rain1102/aggbug/187170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-03-19 10:23 <a href="http://www.blogjava.net/rain1102/archive/2008/03/19/187170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax.Updater </title><link>http://www.blogjava.net/rain1102/archive/2008/03/18/187055.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 18 Mar 2008 09:49:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/03/18/187055.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/187055.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/03/18/187055.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/187055.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/187055.html</trackback:ping><description><![CDATA[<h3>Syntax<code><br />
&nbsp; new Ajax.Updater(container, url, options);<br />
// make a HTTP request to the specified URL and update the 'container' element.<br />
</code></h3>
<p>Note: to only update a div on success, you may optionally substitute a property list for a simply element id (ie {success:&#8217;div_name&#8217;} instead of &#8216;div_name&#8217;)</p>
<h3>Options</h3>
<table>
    <tbody>
        <tr>
            <td>Option</td>
            <td>Default value</td>
            <td>Description</td>
        </tr>
        <tr>
            <td>asynchronous</td>
            <td>true</td>
            <td>Type of request</td>
        </tr>
        <tr>
            <td>evalScripts</td>
            <td>false</td>
            <td>When set as &#8220;true&#8221;, scripts in requested url are evaluated</td>
        </tr>
        <tr>
            <td>method</td>
            <td>&#8216;post&#8217;</td>
            <td>Lets you decide whether to use Get or Post for the request to the server</td>
        </tr>
        <tr>
            <td>contentType</td>
            <td>&#8216;application/x-www-form-urlencoded&#8217;</td>
            <td>Allows you to set the content-type sent to the server</td>
        </tr>
        <tr>
            <td>encoding</td>
            <td>&#8216;UTF-8&#8217;</td>
            <td>Allows you to determine the encoding type information given to the server</td>
        </tr>
        <tr>
            <td>parameters</td>
            <td>&#8217;&#8217;</td>
            <td>Allows you to attach parameters to your <span class="caps">AJAX</span> request. Most common: parameters:Form.serialize(this)</td>
        </tr>
        <tr>
            <td>postBody</td>
            <td>&#8217;&#8217;</td>
            <td>Specify data to post. Something like: postBody:&#8217;thisvar=true&amp;thatvar=Howdy&#8217; How does this differ from parameters?</td>
        </tr>
        <tr>
            <td>username</td>
            <td>&#8217;&#8217;</td>
        </tr>
        <tr>
            <td>password</td>
            <td>&#8217;&#8217;</td>
        </tr>
        <tr>
            <td>requestHeaders</td>
            <td>&#8217;&#8217;</td>
            <td>Allows you to override the headers, see the <a href="http://www.prototypejs.org/api/ajax/options">Prototype <span class="caps">AJAX</span> options</a> for details</td>
        </tr>
        <tr>
            <td>onComplete</td>
            <td>&#8217;&#8217;</td>
            <td>Function to call on completion of request</td>
        </tr>
        <tr>
            <td>onSuccess</td>
            <td>&#8217;&#8217;</td>
            <td>Function to call on successful completion of request</td>
        </tr>
        <tr>
            <td>onFailure</td>
            <td>&#8217;&#8217;</td>
            <td>Function to call on failed request</td>
        </tr>
        <tr>
            <td>onException</td>
            <td>&#8217;&#8217;</td>
            <td>Function to call on failed request (e.g. attempted cross-site request)</td>
        </tr>
        <tr>
            <td>on + Status Code</td>
            <td>&#8217;&#8217;</td>
            <td>on404 etc. raise an event when given status code is encountered.</td>
        </tr>
        <tr>
            <td>insertion</td>
            <td>None</td>
            <td>Instead of inserting the response in the existing content (possibly overwriting it) you can pass a valid Insertion object, such as Insertion.Top, Insertion.Bottom, Insertion.Before or Insertion.After.</td>
        </tr>
    </tbody>
</table>
<p>Hint: If you have set evalScripts:true the script you call (the url parameter) must return a header of &#8216;Content-Type: text/javascript&#8217; else the browser will not execute it.</p><img src ="http://www.blogjava.net/rain1102/aggbug/187055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-03-18 17:49 <a href="http://www.blogjava.net/rain1102/archive/2008/03/18/187055.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在使用struts2的datetimepicker标签时候遇到JS错误:dojo未定义错误</title><link>http://www.blogjava.net/rain1102/archive/2008/02/25/181907.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 25 Feb 2008 02:18:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/02/25/181907.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/181907.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/02/25/181907.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/181907.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/181907.html</trackback:ping><description><![CDATA[在一个action跳转页面时: <br />
&lt;%@ page contentType="text/html;charset=UTF-8"%&gt; <br />
&lt;%@ include file="../../commons/taglibs.jsp"%&gt; <br />
&lt;s:datetimepicker label="releaseTime" name="releaseTime"/&gt; <br />
<br />
时间控件没有显示出来,而报JS错误:<span class="hilite2">dojo</span><span class="hilite3">未定义</span>错误 <br />
<br />
解决办法：<br />
在页面的&lt;head&gt;标签中加入&lt;s:head /&gt;　就可以了 <br />
。。。 <br />
&lt;head&gt; <br />
&lt;title&gt;Struts 2 Cool Tags - Others&lt;/title&gt; <br />
.....<br />
<span style="color: #ff0000">&lt;s:head /&gt;</span>&nbsp; <br />
&lt;/head&gt; <br />
。。。<img src ="http://www.blogjava.net/rain1102/aggbug/181907.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-02-25 10:18 <a href="http://www.blogjava.net/rain1102/archive/2008/02/25/181907.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Struts 2中使用JSON Ajax支持</title><link>http://www.blogjava.net/rain1102/archive/2008/02/20/180907.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 20 Feb 2008 09:02:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/02/20/180907.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/180907.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/02/20/180907.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/180907.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/180907.html</trackback:ping><description><![CDATA[JSON插件提供了一种名为json的ResultType，一旦为某个Action指定了一个类型为json的Result，则该Result无需映射到任何视图资源。因为JSON插件会负责将Action里的状态信息序列化成JSON格式的数据，并将该数据返回给客户端页面的JavaScript。
<p>　　简单地说，JSON插件允许我们在JavaScript中异步调用Action，而且Action不再需要使用视图资源来显示该Action里的状态信息，而是由JSON插件负责将Action里的状态信息返回给调用页面——通过这种方式，就可以完成Ajax交互。</p>
<p>　　Struts2提供了一种可插拔方式来管理插件，安装Struts2的JSON插件与安装普通插件并没有太大的区别，一样只需要将Struts2插件的JAR文件复制到Web应用的WEB-INF/lib路径下即可。</p>
<p>　　安装JSON插件按如下步骤进行：</p>
<p>　　(1)登陆http://code.google.com/p/jsonplugin/downloads/list站点，下载Struts2的JSON插件的最新版本，当前最新版本是0.7，我们可以下载该版本的JSON插件。</p>
<p>　　(2)将下载到的jsonplugin-0.7.jar文件复制到Web应用的WEB-INF路径下，即可完成JSON插件的安装。</p>
<p>　　<strong>实现Actio逻辑</strong></p>
<p>　　假设wo,en输入页面中包含了三个表单域，这三个表单域对于三个请求参数，因此应该使用Action来封装这三个请求参数。三个表单域的name分别为field1、field2和field3。</p>
<p>　　处理该请求的Action类代码如下：　　
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">public&nbsp;class&nbsp;JSONExample <br />
            　　{ <br />
            　　//封装请求参数的三个属性 <br />
            　　private&nbsp;String&nbsp;field1; <br />
            　　private&nbsp;transient&nbsp;String&nbsp;field2; <br />
            　　private&nbsp;String&nbsp;field3; <br />
            　　//封装处理结果的属性 <br />
            　　private&nbsp;int[]&nbsp;ints&nbsp;=&nbsp;{10,&nbsp;20}; <br />
            　　private&nbsp;Map&nbsp;map&nbsp;=&nbsp;new&nbsp;HashMap(); <br />
            　　private&nbsp;String&nbsp;customName&nbsp;=&nbsp;"custom"; <br />
            　　//三个请求参数对应的setter和getter方法 <br />
            　　public&nbsp;String&nbsp;getField1() <br />
            　　{ <br />
            　　return&nbsp;field1; <br />
            　　} <br />
            　　public&nbsp;void&nbsp;setField1(String&nbsp;field1) <br />
            　　{ <br />
            　　this.field1&nbsp;=&nbsp;field1; <br />
            　　} <br />
            　　//此处省略了field1和field2两个字段的setter和getter方法 <br />
            　　... <br />
            　　//封装处理结果的属性的setter和getter方法 <br />
            　　public&nbsp;int[]&nbsp;getInts() <br />
            　　{ <br />
            　　return&nbsp;ints; <br />
            　　} <br />
            　　public&nbsp;void&nbsp;setInts(int[]&nbsp;ints) <br />
            　　{ <br />
            　　this.ints&nbsp;=&nbsp;ints; <br />
            　　} <br />
            　　public&nbsp;Map&nbsp;getMap() <br />
            　　{ <br />
            　　return&nbsp;map; <br />
            　　} <br />
            　　public&nbsp;void&nbsp;setMap(Map&nbsp;map) <br />
            　　{ <br />
            　　this.map&nbsp;=&nbsp;map; <br />
            　　} <br />
            　　//使用注释语法来改变该属性序列化后的属性名 <br />
            　　@JSON(name="newName") <br />
            　　public&nbsp;String&nbsp;getCustomName() <br />
            　　{ <br />
            　　return&nbsp;this.customName; <br />
            　　} <br />
            　　public&nbsp;String&nbsp;execute() <br />
            　　{ <br />
            　　map.put("name",&nbsp;"yeeku"); <br />
            　　return&nbsp;Action.SUCCESS; <br />
            　　} <br />
            　　}</td>
        </tr>
    </tbody>
</table>
　　在上面代码中，使用了JSON注释，注释时指定了name域，name域指定Action属性被序列化成JSON对象的属性名。除此之外，JSON注释还支持如下几个域：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serialize：设置是否序列化该属性</p>
<p>　　deserialize：设置是否反序列化该属性。</p>
<p>　　format：设置用于格式化输出、解析日期表单域的格式。例如"yyyy-MM-dd'T'HH:mm:ss"。</p>
<p>　　配置该Action与配置普通Action存在小小的区别，应该为该Action配置类型为json的Result。而这个Result无需配置任何视图资源。</p>
<p>　　配置该Action的struts.xml文件代码如下：　
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">＜?xml&nbsp;version="1.0"&nbsp;encoding="GBK"?＞ <br />
            ＜!DOCTYPE&nbsp;struts&nbsp;PUBLIC <br />
            "-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.0//EN" <br />
            "http://struts.apache.org/dtds/struts-2.0.dtd"＞ <br />
            ＜struts＞ <br />
            ＜constant&nbsp;name="struts.i18n.encoding"&nbsp;value="UTF-8"/＞ <br />
            ＜package&nbsp;name="example"&nbsp;extends="json-default"＞ <br />
            ＜action&nbsp;name="JSONExample"&nbsp;class="lee.JSONExample"＞ <br />
            ＜result&nbsp;type="json"/＞ <br />
            ＜/action＞ <br />
            ＜/package＞ <br />
            ＜/struts＞　　</td>
        </tr>
    </tbody>
</table>
　　在上面配置文件中有两个值得注意的地方：<br />
<br />
　　第一个地方是配置struts.i18n.encoding常量时，不再是使用GBK编码，而是UTF-8编码，这是因为Ajax的POST请求都是以UTF-8的方式进行编码的。<br />
<br />
　　第二个地方是配置包时，自己的包继承了json-default包，而不再继承默认的default包，这是因为只有在该包下才有json类型的Result。</p><img src ="http://www.blogjava.net/rain1102/aggbug/180907.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-02-20 17:02 <a href="http://www.blogjava.net/rain1102/archive/2008/02/20/180907.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Adobe AIR正式版三月推出 要做RIA技术领导者</title><link>http://www.blogjava.net/rain1102/archive/2008/02/20/180894.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 20 Feb 2008 08:29:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/02/20/180894.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/180894.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/02/20/180894.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/180894.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/180894.html</trackback:ping><description><![CDATA[<p><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe 2</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">月</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">18</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">日表示，将在三月发布</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe AIR</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">（</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe Integrated Runtime</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">）正式版，要和微软的</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Silverlight</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">竞逐丰富网络应用程序</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">RIA</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">（</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Rich Internet Application</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">）市场。</span><span style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> <span lang="EN-US"><br />
<br />
</span></span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">所谓</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">RIA</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">就是以动画、影音等多样性打造网站的技术，而其底层除了微软已在去年推出的</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Silverlight</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">之外，就属</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">开发代号为</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Apollo</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">AIR</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">，目前仍在</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Beta</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">版。不过</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">香港暨台湾区总经理黄耀辉今天表示，</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">AIR</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">正式版将在三月推出，希望在</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">RIA</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">技术中取得市场领导地位。</span><span style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> <span lang="EN-US"><br />
<br />
RIA</span></span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">可以在网站中做出交互式的应用程序，也可以说是实现</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Web 2.0</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">概念的工具。例如可以做到交互式的电子下单系统、航空公司订票系统等等。微软在去年发表</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Silverlight</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">时就展示出宝来证券、中华航空等企业应用。而</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">希望利用</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">AIR</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">做为开发平台，再加上</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Flex</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">和</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Flash</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">两种工具，做到</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">RIA</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的应用程序。</span><span style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> <span lang="EN-US"><br />
<br />
</span></span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">除了</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">要以</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">AIR</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">做为</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">RIA</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">技术领导者外，微软也积极耕耘这块市场，去年才首度正式发表名为「银光」的</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Silverlight 1.0</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">，要抢攻</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">耕耘已久的网站开发、设计市场。随着</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">即将推出</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">AIR</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">正式版，两家厂商将展开正面对决。</span><span style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> <span lang="EN-US"><br />
<br />
</span></span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">对此微软则是自信满满。台湾微软开发工具暨平台推广处产品营销经理胡德民表示，微软三月时会在美国的</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Mix 08</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">大会上发表</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Silverlight 2.0</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的产品蓝图，预计在今年就会正式发表。微软原本只将更新版本命名为</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Silverlight 1.1</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">，不过由于功能比前一版改进太多，因此在去年</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">12</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">月</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><a href="http://www.ithome.com.tw/itadm/article.php?c=46555" target="_blank"><span lang="EN-US" style="color: #000099; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-size: 11.0pt"><span lang="EN-US">宣布</span></span></a></span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">直接发表</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Silverlight 2.0</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">。</span><span style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> <span lang="EN-US"><br />
<br />
</span></span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">而去年</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">9</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">月首次发表的</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Silverlight 1.0</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">版本，目前微软尚不愿透露在台湾地区的使用状况，表示要晚一点才会公布。胡德民认为，</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">RIA</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">技术的成功必须视企业进入这项技术的状况而定，微软今年七、八月份将在台湾举行的</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Mix</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">大会，会展示更多利用</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Silverlight</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">打造的成功案例。另外胡德民也表示，</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">AIR</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的目标群众在于开发者（</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">developer</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">），而微软则是希望开发者和设计者（</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">designer</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">）都能使用微软技术。</span><span style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> <span lang="EN-US"><br />
<br />
</span></span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">微软自去年开始积极抢攻原是</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">天下的开发市场，推出网页设计工具平台</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Expression Studio</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">，其中有网页建置工具、互动设计工具等等，都被视为和</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Flash</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">打对台。不过</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">今天公布</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">2007</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">年的台湾区营业成长为</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">30%</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">，黄耀辉说，仍持续稳定成长，并没有受到微软加入开发市场的影响。</span><span style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> <span lang="EN-US"><br />
<br />
</span></span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">另外，</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Adobe</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">今年在台湾除了深耕</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">RIA</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">技术外，仍持续发展</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Acrobat</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">、</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Creative Suite 3</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">等产品，并在政府、金融、制造业间深耕</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Acrobat</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">。手机端的应用也会有新的进展，和中华电信在手机上的</span><span lang="EN-US" style="font-size: 11.5pt; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Flash Cast</span><span style="font-size: 11.5pt; font-family: 宋体; mso-font-kerning: 0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">服务今年就会推出</span></p><img src ="http://www.blogjava.net/rain1102/aggbug/180894.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-02-20 16:29 <a href="http://www.blogjava.net/rain1102/archive/2008/02/20/180894.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jmesa</title><link>http://www.blogjava.net/rain1102/archive/2008/01/17/175829.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 17 Jan 2008 01:24:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/01/17/175829.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/175829.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/01/17/175829.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/175829.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/175829.html</trackback:ping><description><![CDATA[<v:rect style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: -1px 0px 0px -1px; width: 100px; padding-top: 0px; position: absolute; height: 60px" coordsize="21600,21600" strokeweight="0" stroked="f" fillcolor="white" filled="t"><v:fill opacity="0"></v:fill></v:rect><v:roundrect style="padding-right: 0px; display: block; padding-left: 0px; filter: Alpha(opacity=38.4), progid:dxImageTransform.Microsoft.Blur(PixelRadius=4, MakeShadow=false); left: 4px; padding-bottom: 0px; margin: -1px 0px 0px -1px; width: 88px; padding-top: 0px; zoom: 1; position: absolute; top: 4px; height: 48px" coordsize="21600,21600" strokeweight="0" stroked="f" fillcolor="black" filled="t" arcsize="17476f"><v:fill opacity="1"></v:fill></v:roundrect><v:roundrect style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: -1px 0px 0px -1px; width: 92px; padding-top: 0px; position: absolute; height: 52px" coordsize="21600,21600" strokeweight="0" stroked="f" fillcolor="white" filled="t" arcsize="17476f"><v:fill src="http://www.open-open.com/image/open" type="frame"></v:fill></v:roundrect><v:shape style="left: -1px; margin: -1px 0px 0px -1px; width: 94px; position: absolute; top: 0px; height: 16px" coordsize="92,16" strokeweight="0" stroked="f" fillcolor="white" filled="t" path=" m16,16 l92,16 qy76,0 l16,0 x e"><v:fill opacity="0" type="gradient" method="linear " angle="0" o:opacity2="86507f" color2="white"></v:fill></v:shape><v:shape style="left: 0px; margin: -1px 0px 0px -1px; width: 16px; position: absolute; top: -1px; height: 54px" coordsize="16,52" strokeweight="0" stroked="f" fillcolor="white" filled="t" path=" m0,16 l0,36 qy16,52 l16,16 x e"><v:fill opacity="0" type="gradient" method="linear " angle="90" o:opacity2="86507f" color2="white"></v:fill></v:shape><v:shape style="left: 0px; margin: -1px 0px 0px -1px; width: 16px; position: absolute; top: 0px; height: 16px" coordsize="16,16" strokeweight="0" stroked="f" fillcolor="white" filled="t" path=" m16,16 l0,16 qy16,0 l16,16 x e"><v:fill opacity="0" type="gradientRadial" method="linear " o:opacity2="86507f" color2="white" focussize=".5,.5" focusposition="1,1" focus="100%"></v:fill></v:shape>Jmesa是ExtremeTable项目重新开发一个的Html表格组件，提供过滤、排序、分页、数据导出等功能。Jmesa非常易于使用，可按自己的需求进行扩展。JMesa需要JDK1.5以上的环境。<br />
该项目主页:<a href="http://code.google.com/p/jmesa/">http://code.google.com/p/jmesa/</a><img src ="http://www.blogjava.net/rain1102/aggbug/175829.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-01-17 09:24 <a href="http://www.blogjava.net/rain1102/archive/2008/01/17/175829.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何在dwr的回调函数中传递多个参数</title><link>http://www.blogjava.net/rain1102/archive/2007/12/28/171357.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 28 Dec 2007 15:42:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2007/12/28/171357.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/171357.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2007/12/28/171357.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/171357.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/171357.html</trackback:ping><description><![CDATA[function selectCountry(countryId) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var num = countryId.indexOf("Country");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var prefix = countryId.substr(0,num);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var countryId = document.getElementById(countryId).value;<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loveService.getProvincesByCountry(countryId, function(data){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000">callBackProvices(data,<span style="color: #ff0000">prefix</span>);<br />
</span>&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;resetProvince(prefix+"Province");<br />
&nbsp;&nbsp;&nbsp;resetCity(prefix+"City");<br />
&nbsp;&nbsp;}<br />
&nbsp;<br />
&nbsp;&nbsp;function <span style="color: #ff0000">callBackProvices(data, prefix)</span> {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var provinceId = prefix+'Province';<br />
&nbsp;&nbsp;&nbsp;DWRUtil.removeAllOptions(provinceId);<br />
&nbsp;&nbsp;&nbsp;DWRUtil.addOptions(provinceId, arrayObject, 'value', 'name');<br />
&nbsp;&nbsp;&nbsp;DWRUtil.addOptions(provinceId, data);<br />
&nbsp;&nbsp;}
<p>&nbsp;</p><img src ="http://www.blogjava.net/rain1102/aggbug/171357.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2007-12-28 23:42 <a href="http://www.blogjava.net/rain1102/archive/2007/12/28/171357.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>模块介绍：jRating</title><link>http://www.blogjava.net/rain1102/archive/2007/11/29/163956.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 29 Nov 2007 03:49:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2007/11/29/163956.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/163956.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2007/11/29/163956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/163956.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/163956.html</trackback:ping><description><![CDATA[<dt><strong>简介：</strong>
<dd>这个模块使用 jQuery 技术为节点提供评分功能，当 javascript 被禁止时，使用标准形式，如果启用 javascript 就可以通过图片 (如五星) 动态进行评分。
<p>&nbsp;</p>
<p>这个模块能够与 views 模块协作，它提供一个 views 字段，让评分结果可以通过 views 显示。
<p>&nbsp;</p>
<dt><strong>链接：</strong>
<p>&nbsp;</p>
<dd><a href="http://drupal.org/project/jrating">http://drupal.org/project/jrating</a> </dd><img src ="http://www.blogjava.net/rain1102/aggbug/163956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2007-11-29 11:49 <a href="http://www.blogjava.net/rain1102/archive/2007/11/29/163956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>