Hola:
Los controles de formularios son muy difíciles de crear, entre otras razones por cuestiones de seguridad... por ejemplo, si se quiere cambiar un password por un text y desvelar datos sin permiso... y habrá cientos de razones más...
Lo que yo hago en estos casos es tener el control creado en la misma página y oculto, y para su creación, clonar el que está oculto con cloneNode... para luego, solo modificar su id... evidentemente no es una solución "correcta", pero funciona.
Saludos