用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 相关文章推荐
jQuery EasyUI NumberBox(数字框)的用法
Jul 08 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
Jan 29 Javascript
JS实现的打字机效果完整实例
Jun 20 Javascript
jQuery使用getJSON方法获取json数据完整示例
Sep 13 Javascript
JS封装的选项卡TAB切换效果示例
Sep 20 Javascript
Node.js用readline模块实现输入输出
Dec 16 Javascript
JS中touchstart事件与click事件冲突的解决方法
Mar 12 Javascript
浅谈vuex actions和mutation的异曲同工
Dec 13 Javascript
js数据类型转换与流程控制操作实例分析
Dec 18 Javascript
基于javascript的无缝滚动动画1
Aug 07 Javascript
js实现纯前端压缩图片
Nov 16 Javascript
小程序中手机号识别的示例
Dec 14 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
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
优化PHP程序的方法小结
2012/02/23 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
ES6之模版字符串的具体使用
2018/05/17 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
利用 JavaScript 实现并发控制的示例代码
2020/12/31 Javascript
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
python字典的常用操作方法小结
2016/05/16 Python
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
基于python实现音乐播放器代码实例
2020/07/01 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
JD Sports德国官网:英国领先的运动鞋和运动服饰零售商
2018/02/26 全球购物
印尼购物网站:iLOTTE
2019/10/16 全球购物
护士实习自我鉴定
2013/10/22 职场文书
暑期培训班招生方案
2014/08/26 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
行风评议整改报告
2014/11/06 职场文书
法制教育主题班会
2015/08/13 职场文书
员工旷工检讨书
2015/08/15 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python