<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>生活点滴 &#187; jquery</title>
	<atom:link href="http://www.storyday.com/tag/jquery/feed" rel="self" type="application/rss+xml" />
	<link>http://www.storyday.com</link>
	<description>生活点滴、旅游、web技术、虚拟主机、电子信息</description>
	<lastBuildDate>Wed, 08 Feb 2012 05:54:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>分享一段基于jQuery的表单验证的javascript</title>
		<link>http://www.storyday.com/html/y2009/2272_share-section-of-jquery-based-form-validation-javascript.html</link>
		<comments>http://www.storyday.com/html/y2009/2272_share-section-of-jquery-based-form-validation-javascript.html#comments</comments>
		<pubDate>Wed, 18 Mar 2009 06:32:13 +0000</pubDate>
		<dc:creator>江东</dc:creator>
				<category><![CDATA[HTML客户端]]></category>
		<category><![CDATA[网站技术]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.storyday.com/html/y2009/2272_%e5%88%86%e4%ba%ab%e4%b8%80%e6%ae%b5%e5%9f%ba%e4%ba%8ejquery%e7%9a%84%e8%a1%a8%e5%8d%95%e9%aa%8c%e8%af%81%e7%9a%84javascript.html</guid>
		<description><![CDATA[有jQuery，一切都好办了，因为用它可以方便的定位到html中的任何一个节点，下面一段代码是cosbeta用于表单验证的javascript脚本： 首先引入jQuery库 &#60;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"&#62;&#60;/script&#62; 然后编写验证表单的函数 function valid(s){ var e=s.split('&#38;');var i=0; while( i&#60;e.length ){ var tmp=e[i].split('='); var el = "#"+tmp[0]; var fv =$(el).val(); var tp = tmp[1]; $(el).next().hide();//将表单域后面的出错提示隐藏掉 if( tp == "text" ){ if( fv == "" ) { $(el).next().show(); //若表单域为空，则显示出错提示 return false; //返回false，以下相同 } } if( tp == "int" ){ if( isNaN( fv ) [...]]]></description>
			<content:encoded><![CDATA[<p>有jQuery，一切都好办了，因为用它可以方便的定位到html中的任何一个节点，下面一段代码是cosbeta用于表单验证的javascript脚本：</p>
<p>首先引入jQuery库</p>
<p><code>&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"&gt;&lt;/script&gt;</code></p>
<p>然后编写验证表单的函数</p>
<p><span id="more-2272"></span></p>
<p><code>function valid(s){<br />
var e=s.split('&amp;');var i=0;<br />
while( i&lt;e.length ){<br />
var tmp=e[i].split('=');<br />
var el = "#"+tmp[0];<br />
var fv =$(el).val();<br />
var tp = tmp[1];<br />
$(el).next().hide();//将表单域后面的出错提示隐藏掉<br />
if( tp == "text" ){<br />
if( fv == "" ) {<br />
$(el).next().show(); //若表单域为空，则显示出错提示<br />
return false; //返回false，以下相同<br />
}<br />
}<br />
if( tp == "int" ){<br />
if( isNaN( fv ) ) {<br />
$(el).next().show();<br />
return false;<br />
}<br />
}<br />
if( tp == "email" ){<br />
var res = new RegExp("^([A-Za-z0-9_|-]+[.]*[A-Za-z0-9_|-]+)+@[A-Za-z0-9|-]+([.][A-Za-z0-9|-]+)*[.][A-Za-z0-9]+$","ig");<br />
if (!res.test(fv)){<br />
$(el).next().show();<br />
return false;<br />
}<br />
}<br />
i++;<br />
}<br />
}</code></p>
<p>使用方法距离：</p>
<p><code>&lt;input size="20" type="text" name="email" id="email"  /&gt;<br />
&lt;span class="errormsg"&gt;E-mail is not valid&lt;/span&gt;<br />
&lt;input type="password" name="password" id="password"    /&gt;<br />
&lt;span class="errormsg"&gt;password is required&lt;/span&gt;<br />
&lt;input type="submit" value="Login" onClick="return valid('email=email&amp;password=text')"/&gt;</code></p>
<p>valid的参数说明，若表单域中的input或者select等等需要是email格式，则参数为xxx=email,数字格式为xxx=int,其他非空文本格式则为xxx=text,验证多个表单域用&amp;将其连接起来，如name=text&amp;mail=email&amp;age=int</p>
<p>案例可以参见<a href="http://host.storyday.com" target="_blank">生活点滴虚拟主机</a>的注册表单案例，当然，这个案例更加智能，但是不如本文的代码效率高和灵活，所以才有了这篇日志。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.storyday.com/html/y2009/2272_share-section-of-jquery-based-form-validation-javascript.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Jquery树形菜单的实现</title>
		<link>http://www.storyday.com/html/y2008/1812_jquery-tree-menu.html</link>
		<comments>http://www.storyday.com/html/y2008/1812_jquery-tree-menu.html#comments</comments>
		<pubDate>Wed, 03 Sep 2008 12:01:16 +0000</pubDate>
		<dc:creator>江东</dc:creator>
				<category><![CDATA[HTML客户端]]></category>
		<category><![CDATA[网站技术]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.storyday.com/?p=1812</guid>
		<description><![CDATA[jQuey这个东西很好很强大，用jQuery操作DOM简直是易如反掌。这不，刚才icemapro小弟给我留言，希望我能写一个jQuery的树形菜单，在强大的就Query的帮助下，仅仅花了大约10分钟就完成了，其中还有大约7分钟在考虑css的问题，所以熟悉jquery可是对你很有帮助的哦，废话不多说，下面发布代码，讲解方式依然在注释中体现： 菜单的html代码如下，你可以根据需要进行扩展： storyday.com 第一级目录 iceman 第2级目录 第2级目录 第3级目录 第3级目录 cosbeta 生活点滴 江东 我想上面的html代码应该不用解释了吧，否则这篇文章你也没有看得必要了哈，下面是css的实现，其实css是最难搞的，目前搞定是实现目录式树形，其他树状也是很简单的，无非就是改变一下css a:link,a:visited{font-size:12px; color:#094477;text-decoration:none; } a:link:hover,a:visited:hover{ color:#000cf;text-decoration:underline; } ul.folder{padding:0;margin:0;list-style:none;/*重置ul的margin和padding，否则打死都无法兼容FF和IE*/} li.folder{ background:#fff url(folderbg.png) no-repeat 0 0;padding:0px 0 0px 14px; margin:0 2px; text-indent:20px; /*folder背景，目前放到是windows目录背景，如果是其他树形，用其他背景图片替代即可*/ } li.folder-op{background:#fff url(folderbg-op.png) no-repeat 0 0;} .disnone{ display:none; }/*这是一个公共的css class，表示隐藏该元素*/ 下面开始介绍重点，那就是js的实现，可能这个重点会让你失望，毕竟代码才那么简单的几行，当然在运用jquery之前肯定是要引入jquery库文件的，本例子中直接引用的本blog（生活点滴）中的jquery库： 下面是js代码，解释依然在注释中： function Exp(obj){ var html_element = $(obj).parent('.folder');/*获取当前点击的父dom，在本例子中获取的dom节点将是 “第一级目录所在的li.folder”*/ var sub_element = [...]]]></description>
			<content:encoded><![CDATA[<p>jQuey这个东西很好很强大，用jQuery操作DOM简直是易如反掌。这不，刚才icemapro小弟给我留言，希望我能写一个jQuery的树形菜单，在强大的就Query的帮助下，仅仅花了大约10分钟就完成了，其中还有大约7分钟在考虑css的问题，所以熟悉jquery可是对你很有帮助的哦，废话不多说，下面发布代码，讲解方式依然在注释中体现：<br />
菜单的html代码如下，你可以根据需要进行扩展：<br />
<code>
<ul class="folder">
<li class="folder"><a href="#root">storyday.com</a></li>
<li class="folder"><a href="#root" onClick="Exp(this)">第一级目录</a>
<ul class="folder disnone" >
<li class="folder" ><a href="#">iceman</a></li>
<li class="folder" ><a href="#">第2级目录</a></li>
<li class="folder" ><a href="#root" onClick="Exp(this)">第2级目录</a>
<ul class="folder disnone">
<li class="folder" ><a href="#">第3级目录</a></li>
<li class="folder" ><a href="#">第3级目录</a></li>
</ul>
</li>
</ul>
</li>
<li class="folder"><a href="#root" >cosbeta</a></li>
<li class="folder"><a href="#root" >生活点滴</a></li>
<li class="folder"><a href="#root" >江东</a></li>
</ul>
<p></code><br />
我想上面的html代码应该不用解释了吧，否则这篇文章你也没有看得必要了哈，下面是css的实现，其实css是最难搞的，目前搞定是实现目录式树形，其他树状也是很简单的，无非就是改变一下css<br />
<code><br />
 a:link,a:visited{font-size:12px;<br />
color:#094477;text-decoration:none;<br />
}<br />
a:link:hover,a:visited:hover{<br />
color:#000cf;text-decoration:underline;<br />
}<br />
ul.folder{padding:0;margin:0;list-style:none;/*重置ul的margin和padding，否则打死都无法兼容FF和IE*/}<br />
li.folder{<br />
background:#fff url(folderbg.png) no-repeat 0 0;padding:0px 0 0px 14px;<br />
margin:0 2px;<br />
text-indent:20px;<br />
/*folder背景，目前放到是windows目录背景，如果是其他树形，用其他背景图片替代即可*/<br />
}<br />
li.folder-op{background:#fff url(folderbg-op.png) no-repeat 0 0;}<br />
.disnone{<br />
display:none;<br />
}/*这是一个公共的css class，表示隐藏该元素*/<br />
</code><br />
下面开始介绍重点，那就是js的实现，可能这个重点会让你失望，毕竟代码才那么简单的几行，当然在运用jquery之前肯定是要引入jquery库文件的，本例子中直接引用的本blog（生活点滴）中的jquery库：<br />
<code> <script type="text/javascript"  src="http://www.storyday.com/wp-content/themes/cosxp/common.js.php"></script> </code><br />
下面是js代码，解释依然在注释中：<br />
<code>function Exp(obj){<br />
		var html_element = $(obj).parent('.folder');/*获取当前点击的父dom，在本例子中获取的dom节点将是 “第一级目录所在的li.folder”*/<br />
		var sub_element =  $(html_element).children(".folder"); ;/*根据当前的父dom，获取本级的子dom*/<br />
		if( html_element.attr('class').indexOf('folder-op') != -1 ){<br />
/*css class .folder-op表示当前已经展开的类，如果展开，则前面的+背景变成-背景，具体可以在后面的例子中看到<br />
如果class中含有该类，则表示当前已经展开，所以下面的两行的任务是：1.隐藏该目录，2.remove掉此css class<br />
*/<br />
			html_element.removeClass('folder-op');<br />
			sub_element.hide();<br />
			}<br />
			else{<br />
/*否则，添加表示目录已经展开的类，展示该目录*/<br />
			html_element.addClass('folder-op');<br />
			sub_element.show(500);<br />
			}<br />
		}</code><br />
对，对于js就只需要上面的几行，太简单了，对吧,下面是例子：<span id="more-1812"></span><br />
<iframe src="http://www.storyday.com/wp-content/uploads/2008/09/tree-jquery.html" frameborder="0" width="400" height="150"></iframe><br />
上面例子中包含文件有：<a href="http://www.storyday.com/wp-content/uploads/2008/09/folderbg-op.png"><img src="http://www.storyday.com/wp-content/uploads/2008/09/folderbg-op.png" alt="" title="folderbg-op" width="31" height="14" class="alignnone size-medium wp-image-1815" /></a><a href="http://www.storyday.com/wp-content/uploads/2008/09/folderbg.png"><img src="http://www.storyday.com/wp-content/uploads/2008/09/folderbg.png" alt="" title="folderbg" width="31" height="14" class="alignnone size-medium wp-image-1814" /></a><a href='http://www.storyday.com/wp-content/uploads/2008/09/tree-jquery.html'>tree-jquery</a>！<br />
有些细节是在css中控制的，所以如果你需要其他样式请自行修改css，如下面的另外一个例子：（例子中的虚线不完美，特别没个分支最后的那一行, 所以，在css的运用上发挥你的聪明才智吧）：<br />
<iframe src="http://www.storyday.com/wp-content/uploads/2008/09/tree-jquery-2.html"    frameborder="0" width="400" height="150"></iframe><br />
&#8212;&#8212;&#8212;&#8212;end&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.storyday.com/html/y2008/1812_jquery-tree-menu.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>jQuery应用系列之 通过遍历进行快速表单验证</title>
		<link>http://www.storyday.com/html/y2008/1512_jquery-applications-traversing-through-a-series-of-rapid-verification-form.html</link>
		<comments>http://www.storyday.com/html/y2008/1512_jquery-applications-traversing-through-a-series-of-rapid-verification-form.html#comments</comments>
		<pubDate>Mon, 21 Apr 2008 01:45:21 +0000</pubDate>
		<dc:creator>江东</dc:creator>
				<category><![CDATA[HTML客户端]]></category>
		<category><![CDATA[网站技术]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://www.storyday.com/?p=1512</guid>
		<description><![CDATA[在很多情况下，我们对表单中的某些字段需要在客户端做简单的js验证，比如不能为空。按照传统的方式，我们可能就会去写一个函数来一个一个判断表单中的字符是否为空，为空则返回false，譬如： function validForm(){ if( ( document.getElementById('name').value.length < 1 ) &#038;&#038;( document.getElementById('pass').value.length < 1 ) &#038;&#038;( document.getElementById('email').value.length < 1 ) &#038;&#038;( document.getElementById('tel').value.length < 1 ) &#038;&#038;( document.getElementById('gendar').value.length < 1 )){ alert('带有*号的部分不能为空');return false; } } 那么如果使用了jQuery这一切可能便得更加简单，譬如下面这个表单 * * * * 不知道你是否注意到，上面凡是打*好的表单域，我都用了一个css属性，那就是”important”,这样的好处有两点，1.我们可以在css中将必须填写的字段用特殊的样式表来显示；2.方便在jquery中遍历，下面是jquery简单表单验证的函数 function validForm(){ var is_not_valid = false; $("#reg input.important").each(function(i){//遍历id=reg中的class=important的表单 if(this.value.length < 1){//如果表单为空 i ++ ;//增加i is_not_valid = [...]]]></description>
			<content:encoded><![CDATA[<p>在很多情况下，我们对表单中的某些字段需要在客户端做简单的js验证，比如不能为空。按照传统的方式，我们可能就会去写一个函数来一个一个判断表单中的字符是否为空，为空则返回false，譬如：<br />
<code><br />
function validForm(){<br />
if( ( document.getElementById('name').value.length < 1 )<br />
   &#038;&#038;( document.getElementById('pass').value.length < 1 )<br />
   &#038;&#038;( document.getElementById('email').value.length < 1 )<br />
   &#038;&#038;( document.getElementById('tel').value.length < 1 )<br />
   &#038;&#038;( document.getElementById('gendar').value.length < 1 )){<br />
      alert('带有*号的部分不能为空');return false;<br />
 }<br />
}<br />
</code><br />
那么如果使用了jQuery这一切可能便得更加简单，譬如下面这个表单</code><code></p>
<form id="reg" action="" method="post">
<input type="text" class="important" id="name" name="name" />*</p>
<input type="text" class="important" id="email" name="email" />*</p>
<input type="text" class="important" id="gender" name="gender" />*</p>
<input type="password" class="important" id="pass" name="pass" />*<br />
</form>
<p></code><br />
不知道你是否注意到，上面凡是打*好的表单域，我都用了一个css属性，那就是”important”,这样的好处有两点，1.我们可以在css中将必须填写的字段用特殊的样式表来显示；2.方便在jquery中遍历，下面是jquery简单表单验证的函数<br />
<code><br />
function validForm(){<br />
var is_not_valid = false;<br />
	$("#reg input.important").each(function(i){//遍历id=reg中的class=important的表单<br />
		if(this.value.length < 1){//如果表单为空<br />
			i ++ ;//增加i<br />
			is_not_valid =  true;<br />
			if( i < 2 )//因为这个遍历循环无法用break跳出，只能通过i自增的方式让js只弹出一次alert<br />
				alert('带星号的必须填写');<br />
			this.focus();<br />
		}<br />
	});<br />
	if( is_not_valid ) return false;<br />
}</p>
<p></code><br />
表单域太少，所以也许你看不到这个的优点何在，但是一旦不能为空的表单数量很多，优势就明显了！<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.storyday.com/html/y2008/1512_jquery-applications-traversing-through-a-series-of-rapid-verification-form.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

