Jump to content
  • 0

Форма ввода (еще раз)


-O-J-A-
 Share

Question

Я снова тут, всем доброго дня\вечера\ночи\утра!

Возник еще один вопрос по форме ввода, ниже код для формы ввода пароля, дело в том что при загрузке массивной страницы position absolute срабатует только в самом конце загрузки (тоесть слой на слой не накладуютса) , некрасиво выходит.

Так вот, как тут можно смастерить преимущество в загрузке, или есть аналог без этого огромного js (явуянезнать), желательно сразу в onfocus?

Заранее спасибо

<style type="text/css"> 

label.overlabel-apply {
position:absolute;
z-index:1;
color:#999;
}

</style>

<script type="text/javascript">

function initOverLabels () {
if (!document.getElementById) return;

var labels, id, field;

// Set focus and blur handlers to hide and show
// LABELs with 'overlabel' class names.
labels = document.getElementsByTagName('label');
for (var i = 0; i < labels.length; i++) {

if (labels[i].className == 'overlabel') {

// Skip labels that do not have a named association
// with another field.
id = labels[i].htmlFor || labels[i].getAttribute('for');
if (!id || !(field = document.getElementById(id))) {
continue;
}

// Change the applied class to hover the label
// over the form field.
labels[i].className = 'overlabel-apply';

// Hide any fields having an initial value.
if (field.value !== '') {
hideLabel(field.getAttribute('id'), true);
}

// Set handlers to show and hide labels.
field.onfocus = function () {
hideLabel(this.getAttribute('id'), true);
};
field.onblur = function () {
if (this.value === '') {
hideLabel(this.getAttribute('id'), false);
}
};

// Handle clicks to LABEL elements (for Safari).
labels[i].onclick = function () {
var id, field;
id = this.getAttribute('for');
if (id && (field = document.getElementById(id))) {
field.focus();
}
};

}
}
};

function hideLabel (field_id, hide) {
var field_for;
var labels = document.getElementsByTagName('label');
for (var i = 0; i < labels.length; i++) {
field_for = labels[i].htmlFor || labels[i].getAttribute('for');
if (field_for == field_id) {
labels[i].style.textIndent = (hide) ? '-1000px' : '0px';
return true;
}
}
}

window.onload = function () {
setTimeout(initOverLabels, 50);
};

</script>


<label for="password-field" class="overlabel" style="width:115px;height:20px;color:#9EA7AF;">Пароль</label>
<input class="loginField" id="password-field" type="password" name="password" value="" style="width:115px;height:20px;border:1px solid #D8DCDF;color:#9EA7AF;"></input>

Edited by -O-J-A-
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0
Так вот, как тут можно смастерить преимущество в загрузке, или есть аналог без этого огромного js (явуянезнать), желательно сразу в onfocus?

Так не стоит себя ограничивать, начните уже изучать! Иначе ваша тема звучит как "я не чего не понимаю сделайте мне ..." все бы хорошо да только вы цену не назначили...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy