/ Published in: JavaScript
adopted from:
http://www.alistapart.com/articles/makingcompactformsmoreaccessible/
http://www.alistapart.com/articles/makingcompactformsmoreaccessible/
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
function initOverLabels() { var labels, id, field; labels = document.getElementsByTagName("label"); for(var i=0; i<labels.length; i++) { if (labels[i].className == "overlabel") { id = labels[i].htmlFor || labels[i].getAttribute("for"); if (!id || !(field = document.getElementById(id))) { continue; } labels[i].className = "overlabel-apply"; if (field.value != "") { hideLabel(field.getAttribute("id"), true); } field.onfocus = function() { hideLabel(this.getAttribute("id"), true); } field.onblur = function() { if (this.value == "") { hideLabel(this.getAttribute("id"), false); } } } } } 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) ? "-9999px" : "0"; } } } window.onload = function() { initOverLabels(); } form#login { position: relative; } div#username, div#password { position: relative; float: left; margin-right: 3px; } input#username-field, input#password-field { width: 10em; } label.overlabel { } label.overlabel-apply { position: absolute; top: 3px; left: 5px; z-index: 1; } <form name="login" action="#" method="post"> <div id="username"> <label for="username-field" class="overlabel">Username</label> <input id="username-field" type="text" name="username" title="Username" value="" tabindex="1" /> </div> <div id="password"> <label for="password-field" class="overlabel">Password</label> <input id="password-field" type="password" name="password" title="Password" value="" tabindex="2" /> </div> <div id="submit"> <input type="submit" name="submit" value="Login" tabindex="3" /> </div> </form>
URL: http://jsfiddle.net/rYp59/3/