// Example 2 (JS part 1) function changeInputType( oldElm, // a reference to the input element iType, // value of the type property: 'text' or 'password' iValue, // the default value, set to 'password' in the demo blankValue, // true if the value should be empty, false otherwise noFocus) { // set to true if the element should not be given focus if(!oldElm || !oldElm.parentNode || (iType.length<4) || !document.getElementById || !document.createElement) return; var newElm = document.createElement('input'); newElm.type = iType; if(oldElm.name) newElm.name = oldElm.name; if(oldElm.id) newElm.id = oldElm.id; if(oldElm.className) newElm.className = oldElm.className; if(oldElm.size) newElm.size = oldElm.size; if(oldElm.tabIndex) newElm.tabIndex = oldElm.tabIndex; if(oldElm.accessKey) newElm.accessKey = oldElm.accessKey; newElm.onfocus = function(){return function(){ if(this.hasFocus) return; var newElm = changeInputType(this,'password',iValue, (this.value.toLowerCase()==iValue.toLowerCase())?true:false); if(newElm) newElm.hasFocus=true; }}(); newElm.onblur = function(){return function(){ if(this.hasFocus) if(this.value=='' || (this.value.toLowerCase()==iValue.toLowerCase())) { changeInputType(this,'text',iValue,false,true); } }}(); // hasFocus is to prevent a loop where onfocus is triggered over and over again newElm.hasFocus=false; oldElm.parentNode.replaceChild(newElm,oldElm); if(!blankValue) newElm.value = iValue; if(!noFocus || typeof(noFocus)=='undefined') { window.tempElm = newElm; setTimeout("tempElm.hasFocus=true;tempElm.focus();",1); } return newElm; } function changetype2() { if (document.getElementById("Password").value == 'Password') { document.getElementById("Password").value = ''; } changeInputType(document.getElementById("Password"),'text','Password',false,true); } // Example 2 (JS part 2) /* dss_addLoadEvent(function(){ // Normally I use object detection, however, in this case since I need to // detect Konqueror and Safari which don't have unique objects, // I will use the user agent string to detect them. Only use this type of // detection as a last resort. // I'm doing this because example 2 crashes Konqueror and Safari and // generates errors in IE5/Mac var ua = navigator.userAgent.toLowerCase(); if(!((ua.indexOf('konqueror')!=-1) && (document.all || (ua.indexOf('khtml/3.4')!=-1))) && !(((ua.indexOf('safari')!=-1) && !window.print) || (document.defaultCharset && !window.print))) { // Set the third value to the text you want to appear in the field. changeInputType(document.getElementById("Password"),'text','Password',false,false); } }); /* */