У меня есть вход, который он задает, скрытый, мне нужно изменить его тип на текст. Не может показаться, что это возможно, или если это возможно с помощью jQuery
JQuery: изменение типа элемента из скрытого ввода
Ответ 1
С помощью jQuery 1.4 вы можете изменить тип ввода во время его отсоединения.
marker = $('<span />').insertBefore('#myInput');
$('#myInput').detach().attr('type', 'text').insertAfter(marker);
marker.remove();
Ответ 2
Я не уверен, что это возможно, поэтому я бы предложил использовать скрытый div, чтобы содержать элемент ввода, который может быть показан по мере необходимости. Поле ввода текста может хранить данные даже в том случае, если они скрыты.
Ответ 3
IE не позволит вам изменить тип элемента формы по соображениям безопасности, поэтому я бы пошел с предложением Aram hidden div.
Ответ 4
Вот как бы я это сделал:
$("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
});
Если вы хотите отфильтровать некоторые элементы, вызовите фильтр() перед каждым(), например:
$("input[type='hidden']").filter("[name='whatever']").each(function...
Ответ 5
простой человек...
$('input[type="hidden"]').each (function() { this.type = 'text'; });
Запустить его на событие
Ответ 6
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();
};
Когда c является объектом jQuery; функция выше изменяет атрибут типа. Использование:
var inputElemt = jQuery("#input");
Overlay.toAnyType(inputElemt, "text");
Ответ 7
Старый поток, но мне недавно нужно было сделать что-то подобное, но с полями файлов и очистить их... Я думаю, что одно и то же решение может применяться, но по крайней мере вы можете захватить содержимое в этом случае.
var temp = $('#hidden-field').val();
$("#container-for-field").html("<input id='not-hidden' type='text' value='"+temp+"'/>");
Это также должно решить проблему:).