我们在登录网站的时候,文本框中经常会有提示你输入的信息,当你点击文本框,提示信息自动消失,当文本框什么都没有,而且失去焦点的时候,又有了提示文字。
1.原型开发,先做一个简单的:
我们首先需要一个html文件:
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript"> <br>//这里放置jquery代码 <br></script>
下面加入jquery代码:
我使用了click 和blur内置事件类型处理,而且,只是对username框有效(因为密码框还有别的因素考虑)
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript"> <br>$(document).ready(function(){ <br>$("#username").click( <br>function(){ <br>if($(this).val()=="Enter your name"){ <br>$(this).val(""); <br>} <br>}) <br>$("#username").blur( <br>function(){ <br>if($(this).val()=="") <br>{ <br>$(this).val("Enter your name"); <br>} <br>}) <br>}); <br></script>
2.做的更好
这样基本的原型就写成了,但是这个原型有许多的不足:
1.也许可以对密码框也使用这种方式,但是密码框的type类型是password,它不能显示,何来提示文字?
2. if($(this).val()=="")这种写法我可以接受,但是 if($(this).val()=="Enter your name"),你不觉得这很...要是我就想输这个呢...
3.提示文字用别的灰色的粗体表示,这样交互性是不是更强?
4.既然想要用两种字体表示,能不能把他们提取出来?写在.css里?这个是可以重用的啊!
解决办法:
1.密码框先让它的type是text的,等到点击了,我们再设置成password
2.用个变量来表示是否要切换吧。
3.设置不同的css.
4.用attr("class","class1"),attr("class","class2")来切换class,而不是引用id.(也就是说用.不用#)
下面是实现:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript"> <br>$(document).ready(function(){ <br>var b=true; <br>$("#username").click( <br>function(){ <br>if(b==true){ <br>$(this).val(""); <br>$(this).attr("class","puton"); <br>b=false; <br>} <br>} <br>) <br>$("#username").blur( <br>function(){ <br>if( $(this).val()==""){ <br>$(this).val("Enter your name"); <br>$(this).attr("class","default"); <br>b=true; <br>} <br>} <br>) <br>}); <br>$(document).ready(function(){ <br>var b=true; <br>$("#password").click( <br>function(){ <br>if(b==true){ <br>$(this).val(""); <br>$(this).attr("type","password"); <br>$(this).attr("class","puton"); <br>b=false; <br>} <br>}) <br>$("#password").blur( <br>function(){ <br>if( $(this).val()==""){ <br>$(this).val("Enter your password"); <br>$(this).attr("type","text"); <br>$(this).attr("class","default"); <br>b=true; <br>} <br>} <br>) <br>}); <br></script>
3.更多:
把css写到外部文件.
DRY原则!用插件来实现.
我在下一篇博客去实现.
author: aiqier










