用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滚动加载图片效果的实现
Mar 06 Javascript
JS.findElementById()使用介绍
Sep 21 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
Jun 13 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
Jan 22 Javascript
浅析JavaScript作用域链、执行上下文与闭包
Feb 01 Javascript
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
JS从非数组对象转数组的方法小结
Mar 26 Javascript
vue-rx的初步使用教程
Sep 21 Javascript
JavaScript文本特效实例小结【3个示例】
Dec 22 Javascript
详解如何使用nvm管理Node.js多版本
May 06 Javascript
vue使用map代替Aarry数组循环遍历的方法
Apr 30 Javascript
js实现小球在页面规定的区域运动
Jun 16 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
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
Vue 实现前进刷新后退不刷新的效果
2019/06/14 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
2019/11/14 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
通过Python实现一个简单的html页面
2020/05/16 Python
如何在sublime编辑器中安装python
2020/05/20 Python
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
网络方面基础面试题
2012/11/16 面试题
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
电子商务专业实习生自我鉴定
2013/09/24 职场文书
财务经理岗位职责
2013/11/09 职场文书
酒吧副总经理岗位职责
2013/12/10 职场文书
安全资金保障制度
2014/01/23 职场文书
关爱女孩行动实施方案
2014/03/13 职场文书
协议书样本
2014/04/23 职场文书
大学生年度个人总结
2015/02/15 职场文书
聊聊Python String型列表求最值的问题
2022/01/18 Python
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫