用jquery实现输入框获取焦点消失文字
用jquery实现输入框获取焦点消失文字
发布时间:2016-12-30 来源:查字典编辑
摘要:我们在登录网站的时候,文本框中经常会有提示你输入的信息,当你点击文本框,提示信息自动消失,当文本框什么都没有,而且失去焦点的时候,又有了提示...

我们在登录网站的时候,文本框中经常会有提示你输入的信息,当你点击文本框,提示信息自动消失,当文本框什么都没有,而且失去焦点的时候,又有了提示文字。

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" name="username" value="Enter your name" /><br/>

PassWord:<input type="text" id="password" name="password" value="Enter your password" />

<input type="submit" name="sub" value="login" />

</form>

</div>

</body>

</html>

3.更多:

把css写到外部文件.

DRY原则!用插件来实现.

我在下一篇博客去实现.

author: aiqier

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类