用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中的100个技巧汇总
Dec 15 Javascript
JS小数转换为整数的方法分析
Jan 07 Javascript
JS中获取 DOM 元素的绝对位置实例详解
Apr 23 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
Aug 24 Javascript
在vue项目中使用md5加密的方法
Sep 14 Javascript
Vue CLI3 开启gzip压缩文件的方式
Sep 30 Javascript
JS二级菜单不同实现方法分析【4种方法】
Dec 21 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
Aug 07 Javascript
layui实现给某一列加点击事件
Oct 26 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
Dec 23 jQuery
Vue实现剪贴板复制功能
Dec 31 Javascript
vue 插槽简介及使用示例
Nov 19 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
php下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
javascript中 try catch用法
2015/08/16 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
微信小程序自定义音乐进度条的实例代码
2018/08/28 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
2019/01/19 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
Python中的descriptor描述器简明使用指南
2016/06/02 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
普罗米修斯教学反思
2014/02/06 职场文书
员工晚婚的请假条
2014/02/08 职场文书
和睦家庭事迹
2014/05/14 职场文书
新农村建设典型材料
2014/05/31 职场文书
节约粮食标语
2014/06/18 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书
php实现自动生成验证码的实例讲解
2021/11/17 PHP