Vaio,
можно сделать вот такой костыль
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
<div id="container">
<input type="text" id="input_text"/>
<input type="password" id="input_password" />
</div>
<input type="button" value="show/hide" onclick = "test();">
<script>
function $(selector){
return document.querySelector(selector);
}
function password(params){
var self = this;
this.show = params.show;
getState();
this.getState = getState;
params.text.onkeypress = onKeypress;
params.password.onkeypress = onKeypress;
function onKeypress(){
var self = this;
setTimeout(function(){
var attr = self.getAttribute("type");
if(attr == "text") params.password.value = self.value;
else params.text.value = self.value;
},0);
}
function getState (){
if(self.show)
{
setDisplay(params.text, true);
setDisplay(params.password, false);
}
else
{
setDisplay(params.text, false);
setDisplay(params.password, true);
}
self.show = !self.show;
}
function setDisplay(elem, show){
if(show) elem.style.display = "";
else elem.style.display = "none";
}
}
var pass = new password({
password:$("#input_password"),
text:$("#input_text"),
show:false // задает показывать ли изначально содержимое
});
function test(){
pass.getState();//метод изменяет состояние (показываеть скрывает)
};
</script>
</body>
</html>