Лучший способ использовать jQuery:
Оставить исходное поле ввода скрытым от экрана.
$("#Password").hide(); //Hide it first
var old_id = $("#Password").attr("id"); //Store ID of hidden input for later use
$("#Password").attr("id","Password_hidden"); //Change ID for hidden input
Создание нового поля ввода на лету с помощью JavaScript.
var new_input = document.createElement("input");
Перенос идентификатора и значения из скрытого поля ввода в новое поле ввода.
new_input.setAttribute("id", old_id); //Assign old hidden input ID to new input
new_input.setAttribute("type","text"); //Set proper type
new_input.value = $("#Password_hidden").val(); //Transfer the value to new input
$("#Password_hidden").after(new_input); //Add new input right behind the hidden input
Чтобы обойти ошибку в IE, такую как type property cannot be changed
, вы можете найти это полезным, как показано ниже:
Прикрепить событие click / focus / change к новому элементу ввода, чтобы вызвать то же событие на скрытом вводе.
$(new_input).click(function(){$("#Password_hidden").click();});
//Replicate above line for all other events like focus, change and so on...
Старый скрытый элемент ввода все еще находится внутри DOM, поэтому будет реагировать на событие, вызванное новым элементом ввода. При смене идентификатора новый элемент ввода будет действовать как старый и реагировать на любой вызов функции для старого идентификатора скрытого ввода, но будет выглядеть иначе.
Немного сложно, но РАБОТАЕТ !!! ; -)