用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 相关文章推荐
Python脚本后台运行的几种方式
Mar 09 Javascript
js验证身份证号有效性并提示对应信息
Oct 19 Javascript
jQuery Validate初步体验(二)
Dec 12 Javascript
ajax图片上传,图片异步上传,更新实例
Dec 30 Javascript
jquery easyui如何实现格式化列
Jul 30 jQuery
JavaScript简单实现合并两个Json对象的方法示例
Oct 16 Javascript
深入理解node.js http模块
Jan 24 Javascript
babel之配置文件.babelrc入门详解
Feb 22 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
Apr 26 jQuery
echarts实现词云自定义形状的示例代码
Feb 20 Javascript
vue图片加载失败时用默认图片替换的方法
Aug 29 Javascript
vue-video-player视频播放器使用配置详解
Oct 23 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
一个ORACLE分页程序,挺实用的.
2006/10/09 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
Yii2实现ActiveForm ajax提交
2017/05/26 PHP
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
vue通过cookie获取用户登录信息的思路详解
2018/10/30 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
p5.js实现动态图形临摹
2019/10/23 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
python实现的jpg格式图片修复代码
2015/04/21 Python
详细介绍Python中的偏函数
2015/04/27 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
前端使用canvas生成盲水印的加密解密的实现
2020/12/16 HTML / CSS
高级护理专业毕业生推荐信
2013/12/25 职场文书
给校长的建议书200字
2014/05/16 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
2015年仓库工作总结
2015/04/09 职场文书
护士心得体会范文
2016/01/25 职场文书
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python