用jquery实现输入框获取焦点消失文字


Posted in Javascript onApril 27, 2013

我们在登录网站的时候,文本框中经常会有提示你输入的信息,当你点击文本框,提示信息自动消失,当文本框什么都没有,而且失去焦点的时候,又有了提示文字。

1.原型开发,先做一个简单的:
我们首先需要一个html文件:

<html> 
<head> 
<title>input test</title> 
<meta name="Content-Type" content="text/html; charset=UTF-8" /> 
<style type="text/css"> 
//这里放置css 
</style> 
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript"> 
//这里放置jquery代码 
</script> 
</head> 
<body> 
<form method="POST" id="user" action=""> 
User Name:<input type="text" name="username" value="Enter your name" /><br/> 
PassWord:<input type="password" name="password" value="Enter your password" /> 
<input type="submit" name="sub" value="login" /> 
</form> 
</div> 
</body> 
</html>

下面加入jquery代码:
我使用了click 和blur内置事件类型处理,而且,只是对username框有效(因为密码框还有别的因素考虑)
<html> 
<head> 
<title>input test</title> 
<meta name="Content-Type" content="text/html; charset=UTF-8" /> 
<style type="text/css"> 
</style> 
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
$("#username").click( 
function(){ 
if($(this).val()=="Enter your name"){ 
$(this).val(""); 
} 
}) 
$("#username").blur( 
function(){ 
if($(this).val()=="") 
{ 
$(this).val("Enter your name"); 
} 
}) 
}); 
</script> 
</head> 
<body> 
<div id="content"> 
<form method="POST" id="user" action=""> 
User Name:<input type="text" id="username" name="username" value="Enter your name" /><br/> 
PassWord:<input type="password" name="password" value="Enter your password" /> 
<input type="submit" name="sub" value="login" /> 
</form> 
</div> 
</body> 
</html>

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.(也就是说用.不用#)
下面是实现:

<html> 
<head> 
<title>input test</title> 
<style type="text/css"> 
.default { 
font-weight:bold; 
color:#787878; 
} 
.puton{ 
font-weight:normal; 
color:black; 
} 
</style> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
var b=true; 
$("#username").click( 
function(){ 
if(b==true){ 
$(this).val(""); 
$(this).attr("class","puton"); 
b=false; 
} 
} 
) 
$("#username").blur( 
function(){ 
if( $(this).val()==""){ 
$(this).val("Enter your name"); 
$(this).attr("class","default"); 
b=true; 
} 
} 
) 
}); 
$(document).ready(function(){ 
var b=true; 
$("#password").click( 
function(){ 
if(b==true){ 
$(this).val(""); 
$(this).attr("type","password"); 
$(this).attr("class","puton"); 
b=false; 
} 
}) 
$("#password").blur( 
function(){ 
if( $(this).val()==""){ 
$(this).val("Enter your password"); 
$(this).attr("type","text"); 
$(this).attr("class","default"); 
b=true; 
} 
} 
) 
}); 
</script> 
</head> 
<body> 
<div id="content"> 
<form method="POST" id="user" action=""> 
User Name:<input type="text" id="username" class="default" name="username" value="Enter your name" /><br/> 
PassWord:<input type="text" id="password" class="default" name="password" value="Enter your password" /> 
<input type="submit" name="sub" value="login" /> 
</form> 
</div> 
</body> 
</html>

3.更多:
把css写到外部文件.
DRY原则!用插件来实现.
我在下一篇博客去实现.
author: aiqier
Javascript 相关文章推荐
JavaScript 学习技巧
Feb 17 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
Aug 28 Javascript
javascript ready和load事件的区别示例介绍
Aug 30 Javascript
JS控制阿拉伯数字转为中文大写示例代码
Sep 04 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
Mar 27 Javascript
浅谈Javascript如何实现匀速运动
Dec 19 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
Sep 18 Javascript
jQuery实现放大镜效果实例代码
Mar 17 Javascript
vuejs router history 配置到iis的方法
Sep 20 Javascript
vue使用代理解决请求跨域问题详解
Jul 24 Javascript
layui导出所有数据的例子
Sep 10 Javascript
react实现同页面三级跳转路由布局
Sep 26 Javascript
javascript中强制执行toString()具体实现
Apr 27 #Javascript
用客户端js实现带省略号的分页
Apr 27 #Javascript
jquery ajax同步异步的执行最终解决方案
Apr 26 #Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
Apr 26 #Javascript
JQuery的Ajax跨域请求原理概述及实例
Apr 26 #Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
Apr 26 #Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
Apr 26 #Javascript
You might like
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
在Python的Tornado框架中实现简单的在线代理的教程
2015/05/02 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
Python实现导出数据生成excel报表的方法示例
2017/07/12 Python
Python实现接受任意个数参数的函数方法
2018/04/21 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
物理系毕业生自荐书范文
2014/02/22 职场文书
交通事故赔偿协议书范本
2014/04/15 职场文书
公司贷款承诺书
2014/05/30 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android