Formfieldhints.--表单提示效果

本文介绍如何使用CSS和JavaScript创建动态表单字段提示,通过聚焦和失焦事件显示和隐藏提示信息,提高用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Code
<!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>
<title>Form field hints with CSS and JavaScript</title>
<style type="text/css">


/* All form elements are within the definition list for this example */
dl
{
font
:normal 12px/15px Arial;
position
: relative;
width
: 350px;
}
dt
{
clear
: both;
float
:left;
width
: 130px;
padding
: 4px 0 2px 0;
text-align
: left;
}
dd
{
float
: left;
width
: 200px;
margin
: 0 0 8px 0;
padding-left
: 6px;
}


/* The hint to Hide and Show */
.hint
{
display
: none;
position
: absolute;
right
: -250px;
width
: 200px;
margin-top
: -4px;
border
: 1px solid #c93;
padding
: 10px 12px;
/* to fix IE6, I can't just declare a background-color,
I must do a bg image, too! So I'm duplicating the pointer.gif
image, and positioning it so that it doesn't show up
within the box
*/
background
: #ffc url("http://www.cssrain.cn/demo/formfieldhints/pointer.gif") no-repeat -10px 5px;
}

/* The pointer image is hadded by using another span */
.hint .hint-pointer
{
position
: absolute;
left
: -10px;
top
: 5px;
width
: 10px;
height
: 19px;
background
: url("http://www.cssrain.cn/demo/formfieldhints/pointer.gif") left top no-repeat;
}
</style>
<script type="text/javascript">
function addLoadEvent(func)
{
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}

function prepareInputsForHints()
{
var inputs = document.getElementsByTagName("input");
for (var i=0; i<inputs.length; i++){
// test to see if the hint span exists first
if (inputs[i].parentNode.getElementsByTagName("span")[0]) {
// the span exists! on focus, show the hint
inputs[i].onfocus = function () {
this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
}
// when the cursor moves away from the field, hide the hint
inputs[i].onblur = function ()
{
this.parentNode.getElementsByTagName("span")[0].style.display = "none";
}
}
}
// repeat the same tests as above for selects
var selects = document.getElementsByTagName("select");
for (var k=0; k<selects.length; k++)
{
if (selects[k].parentNode.getElementsByTagName("span")[0]) {
selects[k].onfocus = function () {
this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
}
selects[k].onblur = function ()
{
this.parentNode.getElementsByTagName("span")[0].style.display = "none";
}
}
}
}
addLoadEvent(prepareInputsForHints);
</script>
</head>
<body>
<p style="font:normal 12px/15px Arial;">Tab or click through the fields to reveal the hints.</p>

<dl>
<dt>
<label for="firstname">First Name:</label>
</dt>
<dd>
<input
name="firstname"
id="firstname"
type="text" />
<span class="hint">This is the name your mama called you when you were little.<span class="hint-pointer"> </span></span>
</dd>
<dt>
<label for="lastname">Last Name:</label>
</dt>
<dd>
<input
name="lastname"
id="lastname"
type="text" />
<span class="hint">This is the name your sergeant called you when you went through bootcamp.<span class="hint-pointer"> </span></span>
</dd>
<dt>
<label for="email">Email:</label>
</dt>
<dd>
<input
name="email"
id="email"
type="text" />
<span class="hint">The thing with the @ symbol and the dot com at the end.<span class="hint-pointer"> </span></span>
</dd>
<dt><label for="year">Birth Year:</label></dt>
<dd>
<select id="year" name="year">
<option value="">YYYY</option>
<option value="1066">1066</option>
<option value="1492">1492</option>
<option value="1776">1776</option>
<option value="1812">1812</option>
<option value="1917">1917</option>
<option value="1942">1942</option>
<option value="1999">1999</option>
</select>
<span class="hint">Pick a famous year to be born in.<span class="hint-pointer"> </span></span>
</dd>
<dt>
<label for="username">Username:</label>
</dt>
<dd>
<input
name="username"
id="username"
type="text" />
<span class="hint">Between 4-12 characters.<span class="hint-pointer"> </span></span>
</dd>
<dt>
<label for="password">Password:</label>
</dt>
<dd>
<input
name="password"
id="password"
type="password" />
<span class="hint">Between 5-13 characters, but not 7. Never 7.<span class="hint-pointer"> </span></span>
</dd>
<dt class="button"> </dt>
<dd class="button">
<input
type="submit"
class="button"
value="Submit" />
</dd>
</dl>


</body>
</html>

转载于:https://www.cnblogs.com/leevane/archive/2008/10/20/1315212.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值