jQuery将input type = text更改为textarea

Bob*_*ing 4 forms jquery input

我有一个隐藏的领域.在下降事件之后,它需要转换为'textarea'.

这个:

      excerpt = $(parent).find('#excerpt').attr('type', 'textarea');
      excerpt.val('textarea');
Run Code Online (Sandbox Code Playgroud)

生产

财产不能改变

错误

此方法:将 元素类型从隐藏更改为输入

marker = $('<span />').insertBefore('#myInput');
$('#myInput').detach().attr('type', 'textarea').insertAfter(marker);
marker.remove();
Run Code Online (Sandbox Code Playgroud)

没有使用'textarea',但只适用于'text'.添加:

.val('HERE')
Run Code Online (Sandbox Code Playgroud)

致:

$('#myInput').detach().attr('type', 'textarea').val('HERE').insertAfter(marker);
Run Code Online (Sandbox Code Playgroud)

line确实导致文本框的值发生变化,因此选择器正在工作,并且<span>正在插入和删除元素.

这是一个不可逾越的安全问题吗?或者有办法吗?

Ror*_*san 5

因为a 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();
Run Code Online (Sandbox Code Playgroud)