本文介绍利用JavaScript实现文本框的交互效果:当用户点击文本框时自动清除默认提示文字,当输入内容为空且鼠标焦点离开(onblur)时,自动恢复显示默认提示信息。代码包含HTML结构及JS事件监听逻辑,并简要提及密码框的特殊处理方案。
文本框点击清除与失焦恢复逻辑
许多网站在填写文本框时,默认状态下会显示一段提示文字。当用户点击该文本框时,系统应自动清除其中的默认文本;而当用户删除已输入的内容且焦点离开文本框时,系统需将默认的提示文本重新写入文本框。
具体实现代码如下:
基础HTML与JavaScript实现
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="https://www.jb51.net/" />
<title>点击文本框清除默认值</title>
<script type="text/javascript">
window.onload=function()
{
var username=document.getElementById("username");
username.onclick=function()
{
if(username.value=="请输入您的姓名")
{
username.value="";
this.focus();
}
}
username.onblur=function()
{
if(username.value=="")
{
username.value="请输入您的姓名";
}
}
}
</script>
</head>
<body>
<input type="text" value="请输入您的姓名" id="username" />
</body>
</html>
上述代码满足了前述需求:点击文本框时清除内容;若文本框内无输入,当鼠标焦点离开时,文本框的值将恢复为默认状态。需要注意的是,密码框的处理可能较为复杂,因为密码框不显示明文。关于密码框提示语的解决方案,可参考JavaScript实现输入框(密码框)出现提示语相关章节。
以下是鼠标离开文本框时触发JavaScript方法的具体示例:
ASP.NET环境下的失焦验证示例
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="textBox.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function validate() {
var name = document.getElementById("txtName");
if (name.value == 2) {
alert("你必须不是二!");
name.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtName" onblur="validate();" runat="server" />
</div>
</form>
</body>
</html>