用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 相关文章推荐
editable.js 基于jquery的表格的编辑插件
Oct 24 Javascript
Asp.Net alert弹出提示信息的几种方法总结
Jan 29 Javascript
JavaScript自定义等待wait函数实例分析
Mar 23 Javascript
jQuery实现的登录浮动框效果代码
Sep 26 Javascript
超实用的javascript时间处理总结
Aug 16 Javascript
AngularJS使用ng-options指令实现下拉框
Aug 23 Javascript
Web 开发中Ajax的Session 超时处理方法
Jan 19 Javascript
Vue 单文件中的数据传递示例
Mar 21 Javascript
bootstrap table表格插件之服务器端分页实例代码
Sep 12 Javascript
解决百度Echarts图表坐标轴越界的方法
Oct 17 Javascript
vue如何根据网站路由判断页面主题色详解
Nov 02 Javascript
在Vue中使用mockjs代码实例
Nov 25 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
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
PHP安全配置
2006/12/06 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
php获取linux命令结果的实例
2017/03/13 PHP
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
javascript实现多级联动下拉菜单的方法
2015/02/06 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
Python实现堆排序的方法详解
2016/05/03 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
python小项目之五子棋游戏
2019/12/26 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
软件测试笔试题
2012/10/25 面试题
历史教育专业个人求职信
2013/12/13 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers
python内置模块之上下文管理contextlib
2022/06/14 Python
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android