我有一个隐藏字段。在放置事件之后,它需要转换为“文本区域”。
这个:
excerpt = $(parent).find('#excerpt').attr('type', 'textarea');
excerpt.val('textarea');
产生
property cannot be changed
错误
这个方法: Change element type from hidden to input
marker = $('<span />').insertBefore('#myInput');
$('#myInput').detach().attr('type', 'textarea').insertAfter(marker);
marker.remove();
使用 'textarea' 不执行任何操作,但仅适用于 'text'。添加:
.val('HERE')
致:
$('#myInput').detach().attr('type', 'textarea').val('HERE').insertAfter(marker);
行确实导致文本框的值发生变化,因此选择器正在工作并且 <span>
元素正在正确插入和删除。
这是一个无法克服的安全问题吗?或者有办法做到吗?
最佳答案
由于 textarea
与 input
是完全不同的元素,因此更容易创建一个新的 textarea
并删除 input
。试试这个:
$input = $("#myHiddenInput")
$textarea = $("<textarea></textarea>").attr({
id: $input.prop('id'),
name: $input.prop('name'),
value: $input.val()
});
$input.after($textarea).remove();
关于jQuery 将输入类型=文本更改为文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9112409/