avatar_Everybody

Всплывающие Подсказки Для Полей Ввода: простое и эффективное решение

Автор Everybody, 2009 Окт. 15, 16:58

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] javascriptcssподсказки для полей ввода

Everybody

Порой чтоб сэконмить место при описании полей ввода - приходиться подробные описания сократить либо ообще обойтись без них. Решение есть к примеру на css + javascript маленький код который покажет сплывающие подсказки для каждого поля.

Установка: добвим код перед тегом </head>
<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(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(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>

В самом коде после <input ....> добаить код <span class="hint">описание поля<span class="hint-pointer"> </span></span>

Пример:
<dd>
<input
name="username"
id="username"
type="text" />
<span class="hint">Between 4-12 characters.<span class="hint-pointer"> </span></span>
</dd>

ЦитироватьИсточник: _https://www.askthecssguy.com/2007/03/form_field_hints_with_css_and.html