javascript - tiene - jQuery: cambiar el tipo de elemento de oculto a entrada
obtener el valor de un atributo jquery (7)
No estoy seguro de que esto sea posible, por lo que sugeriría utilizar un div oculto para contener el elemento de entrada, que se puede mostrar según sea necesario. El campo de entrada de texto aún puede contener datos incluso si está oculto.
Tengo una entrada cuyo tipo está configurado como oculto, necesito cambiar su tipo a texto. Parece que no puede resolver esto o si es posible con jQuery
IE no te permitirá cambiar el tipo de elemento de un formulario por razones de seguridad, así que iría con la sugerencia oculta de Div de Aram.
Así es como yo haría esto:
$("input[type=''hidden'']").each(function(){
var name = $(this).attr(''name''); // grab name of original
var value = $(this).attr(''value''); // grab value of original
/* create new visible input */
var html = ''<input type="text" name="''+name+''" value="''+value+''" />'';
$(this).after(html).remove(); // add new, then remove original input
});
Si desea filtrar algunos de los elementos, llame a filter () antes de cada (), como este:
$("input[type=''hidden'']").filter("[name=''whatever'']").each(function...
Overlay.toAnyType = function (c, type) {
var shadow = jQuery(document.createElement(c.context.nodeName));
// Clone attributes to new object.
for (var i = 0; i < c[0].attributes.length; i++) {
var attr = c[0].attributes[i].name;
var val = c[0].attributes[i].value;
if (attr == "type") val = type;
shadow.attr(attr, val);
}
shadow.insertAfter(c);
c.remove();
};
Cuando c es un objeto jQuery; la función anterior cambia el tipo de atributo. Uso:
var inputElemt = jQuery("#input");
Overlay.toAnyType(inputElemt, "text");
Tema antiguo, pero recientemente tuve que hacer algo similar, pero con campos de archivos y borrarlos ... Creo que se podría aplicar la misma solución, pero al menos puedes tomar los contenidos en este caso.
var temp = $(''#hidden-field'').val();
$("#container-for-field").html("<input id=''not-hidden'' type=''text'' value=''"+temp+"''/>");
Eso también debería resolver el problema :).
Con jQuery 1.4 puede cambiar el tipo de una entrada mientras está desconectada.
marker = $(''<span />'').insertBefore(''#myInput'');
$(''#myInput'').detach().attr(''type'', ''text'').insertAfter(marker);
marker.remove();
hombre fácil...
$(''input[type="hidden"]'').each (function() { this.type = ''text''; });
Dispararlo en un evento