用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 相关文章推荐
js类后台管理菜单类-MenuSwitch
Sep 12 Javascript
js实现文本框选中的方法
May 26 Javascript
jQuery回到顶部的代码
Jul 09 Javascript
JS生成和下载二维码的代码
Dec 07 Javascript
JavaScript实现简单的四则运算计算器完整实例
Apr 28 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
May 07 Javascript
微信小程序日历组件calendar详解及实例
Jun 08 Javascript
深入理解Webpack 中路径的配置
Jun 17 Javascript
详解Chai.js断言库API中文文档
Jan 31 Javascript
vue组件横向树实现代码
Aug 02 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
May 08 Javascript
vue选项卡切换的实现案例
Apr 11 Vue.js
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
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
用php获取远程图片并把它保存到本地的代码
2008/04/07 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
7个鲜为人知却非常实用的PHP函数
2015/07/01 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
PHP7 参数处理机制修改
2021/03/09 PHP
javascript 写类方式之一
2009/07/05 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
Vue实现virtual-dom的原理简析
2017/07/10 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
Python2与Python3的区别实例分析
2019/04/11 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
中国最大的团购网站:聚划算
2016/09/21 全球购物
中国跨境电商:Tomtop
2017/03/16 全球购物
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
优秀的导游求职信范文
2014/04/06 职场文书
小学数学课题方案
2014/06/15 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
预备党员考察意见范文
2015/06/01 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
python 如何用terminal输入参数
2021/05/25 Python
Vue实现动态查询规则生成组件
2021/05/27 Vue.js